栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

创建类和实例的练习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

创建类和实例的练习

创建类

首先创建一个Restaurant类,其中需要包含self.restaurant_name和self.cuisine_type这两个属性,并且创建方法能够打印这两项信息,再创建一个方法表示餐厅营业中。

#类的创建
class Restaurant:
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
    def describe_restaurant(self):
        print("This is "+self.restaurant_name)
        print('They have'+self.cuisine_type)
    def open_restaurant(self):
        print('The restaurant is opening') 

根据Restaurant类创建一个表示特定餐厅的实例

#实例的创建
restaurant=Restaurant('ChinaTown','dumplings')  
restaurant.describe_restaurant()
restaurant.open_restaurant()

python创建了名为ChinaTown,cuisine是dumplings的餐厅,即使用实参ChinaTown,dumplings调用方法——init——()创建表示这家餐厅的实例,并使用这项值设置属性restaurant_name和cuisine_type

实例访问属性

在类外访问:
restaurant.resraurant_name
类内访问需要使用self.resraurant_name

类外访问,python先找到实例restaurant,再找到与实例相关联的属性值

调用方法

restaurant.describe_restaurant()

给属性指定默认值

类中每个属性都必须有默认值,哪怕这个值是0或者空字符串。

设置默认值时,可以在_init_()方法中直接设置初始值,这样就不需要包含为它提供初始值的形参

class Restaurant:
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
        self.number.served=0   初始属性设置,不需要设置number.served的形参

修改属性值

1、直接访问属性进行修改
restaurant=Restaurant('ChinaTown','dumplings')  
restaurant.number_served=12

2、通过方法修改,这样无需访问属性,可将值传递给方法,在内部进行更新
def update_number_severd(self,number):
    self.number_served=number
    print(self.restaurant_name+'This restaurant has served','self.number_served','people')

restaurant.update_number_severd(20)

3、通过方法对属性的值进行递增
def increment_number_served(self):
    self.number_severd+=1
    print(self.restaurant_name+'This restaurant has served','self.number_served','people')

练习:

创建一个User类,包含用户简介通常会存储的属性,定义一个方法打印用户信息摘要,定义一个方法,发出个性化问候

class User:
    def __init__(self,first_name,last_name,age,gender):
        self.first_name=first_name
        self.last_name=last_name
        self.age=age
        self.gender=gender
        self.login_attempts=0
    def describe_user(self):    
        print(self.first_name,self.last_name,str(self.age),self.gender)
    def greet_user(self):       
        print('Hello',self.first_name.title(),",It's happy to see you")
    def increment_login_attempts(self):
        self.login_attempts+=1
    def reset_login_attempts(self):
        self.login_attempts = 0
    def read_login_attempts(self):
        print('You have tried',self.login_attempts,'times')
    def update_login_attempts(self,number):
        self.login_attempts=number

print('----------信息统计、问候-----------')
user1=User('lily','Smith',18,'woman')
user1.describe_user()
user1.greet_user()
print('-------直接访问属性修改值--------')
user1.login_attempts=2
user1.read_login_attempts()
print('-------通过方法修改值--------')
user1.update_login_attempts(3)
user1.read_login_attempts()
print('-------通过方法修改增量--------')
user1.increment_login_attempts()
user1.read_login_attempts()
print('-------通过方法重置为0--------')
user1.reset_login_attempts()
user1.read_login_attempts()

结果如下:

----------信息统计、问候-----------
lily Smith 18 woman
Hello Lily ,It's happy to see you
-------直接访问属性修改值--------
You have tried 2 times
-------通过方法修改值--------
You have tried 3 times
-------通过方法修改增量--------
You have tried 4 times
-------通过方法重置为0--------
You have tried 0 times

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号