#第一个关于类的作业 ---餐厅类class Restaurant: '''这是一个关于餐厅的类的练习''' restaurant_name = '' cooking_type = '烧烤餐吧' def ribe_restaurant(self): print(Restaurant.cooking_type) ####打印餐厅的烹饪风格 print(Restaurant.restaurant_name) #打印餐厅的名字 def open_restaurant(self): print('该餐厅正在营业')restaurant = Restaurant()restaurant.open_restaurant()restaurant.ribe_restaurant()#这是第二个关于累的作业 --- User类class User: '''这是第二个类 关于用户的类的练习''' first_name = '' #这是第一个名字 last_name = '小高' #这是最后的名字 sex = '男' hobby = 'swimming' birthday = '1995.10.22' def describe_user(self): print('用户曾用名{},最后的名字是{},性别{},爱好是{},出生年月是{}'.format(User.first_name,User.last_name,self.sex,self.hobby,self.birthday)) #这个地方可以用类调用属性,也可以用对象 也可以使用self就是对象本身 def greet_user(self,*args): print('{},您好,非常欢迎您'.format(User.last_name))user1 = User()user1.describe_user() #在测试的时候发现有个问题,就是写了descibe_user 但是没有加上() 所以就没有调用user1.greet_user()class Phone: '''这个是手机的类别,包含手机的属性以及手机的方法''' # color = 'white' # price = '4500' # brand = 'oppo' # size = '5.5' ###### 参数化-魔法方法 --初始化方法 def __init__(self, color, price, brand, size):#(类里面创建了初始化方法,再创建对象的时候就需要传对应个数的参数)初始化方法,也是可以给默认值得,比如size=6.5 self.color = color #这里的self.color只是一个变量名 也可以写成self.x self.y ,写成color是为了见名知意 self.price = price self.brand = brand self.size = size # 打电话 # 发短信 # 看电视 # 拍照 @classmethod def call(cls,tel_no): print('拨号{}'.format(tel_no)) def send_message(self,tel_no,content='早上好'): print('可以给{}发短信,短信的内容是{}'.format(tel_no,content)) def watch_tv(self,*args): app = '' for item in args: app += item app += '、' print('我们可以使用{}等App观看视频'.format(app)) def take_shot(self): print('可以提供拍照') def phone_info(self): print('手机的颜色是{},价格是{},品牌是{},尺寸是{}'.format(self.color,self.price,self.brand,self.size))t = Phone('red','6000','oppo','6.5') #t = Phone('red','6000','oppo','6.5')t.call('123456789')t.send_message(123456,'hello')t.watch_tv('优酷',"爱奇艺",'西瓜视频')print(t.phone_info())# 没有初始化方法的时候,写完类的属性,创建对象的时候,比如函数phone_info 直接对象调用就好了,可以写成:t = Phone();# 但是如果是有初始化方法的时候,再创建对象的时候,就必须传对应的参数如:t = Phone('red','6000','oppo','6.5')