#第一个关于类的作业 ---餐厅类
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')