创建类
首先创建一个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



