学习内容:
- 创建对象的类别class :,定义类的属性(是什么,有点像基本信息登记)
- 定义类的功能def+__init__():(这个对象做什么,目前不需要做什么只是学一个口令,命名都是动作)
- 创建该类的一个实例,打印属性
- 实例如何调用类的功能?(如何发出指令)句号法:实例.功能名()理解成有个按钮,实例点了一下功能名,好像可以?
练习:
餐馆 创建一个名为Restaurant的类,为其方法__init__()设置属性restaurant_name和cuisine_type。创建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。根据这个类创建一个名为restaurant的实例,分别打印其两个属性,再调用前述两个方法。from《从入门到实践》
我自己的代码和一些小结:
class Restaurant:
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name = restaurant_name
self.cuisine_type =cuisine_type
def describe_restaurant(self):
print (f"{self.restaurant_name},{self.cuisine_type}")
'''{}{}.title这种形式可以吗?可以的;self.一开始没写,def中的self也没有写'''
def open_restaurant(self):
print (f"The {self.restaurant_name} is open.")
restaurant = Restaurant('张亮','麻辣烫')
'''创建实例不熟悉,创建实例是给实例赋值,
实例是类里面的,所以赋值是用类关联两个属性,
实例的两个属性(restaurant)是(=)类里面的属性1,属性2(Restaurant('张亮','麻辣烫'));
*公式好像是死记硬背,熟能生巧;'''
print (f"{restaurant.restaurant_name}")
print (f"{restaurant.cuisine_type}")
'''打印两个属性:
①f的用法还是记不住,
复习:这种字符串名为f字符串。f是format(设置格式)的简写,
用途:在字符串中加入变量的值!!!{花括号里放变量的值}
格式变化:"{}{}".format(A,B)=f"{A}{B}"
②这里用self会报错,不在类里,
现在已经是实例里面了,缩进的话也不对
实例中,能与类关联的,那就是已经赋值的↓后半部分
self.restaurant_name = restaurant_name
实例中要用,就不能用前,要用后
还有一种理解是,self在实例中被换为了restaurant,
这里要调用,就用↑公式的左边啦
这么看来是第二种理解。
'''
restaurant.describe_restaurant()
restaurant.open_restaurant()
'''调用方法,就是用句号法,因为调用中有print,
所以与其他调用还需要赋值+print不同,
这里只用调用
调用: 实例名+.调用名()不要忘记(),且里面没有东西
()里面要不要东西 和需求有关
(x)好像是指定要x,()空的就没有指定,按照定义的来'''
'''今日报错
line 13, in Restaurant
restaurant = Restaurant('张亮麻辣烫','小吃')
NameError: name 'Restaurant' is not defined
原因是实例,restaurant = Restaurant('张亮','麻辣烫')
这一行缩进了!!实际没有缩进
以后检查代码也要注意缩进问题
line 15, in <module>
print (self.restaurant_name)
NameError: name 'self' is not defined
这里我原本写的是错误的,那个时候不理解,
实例中打印应该是self换成restaurant
此外是格式,字符串中的变量的值用f格式
改为print (f"{restaurant.restaurant_name}")
另外,字符串中"/n/t"没有用,
会直接打印出来
如果变量的值没有加{},会直接打印花括号里面的内容
以上也是我错的
line 11, in open_restaurant
print (f"The {self.resaurant_name} is open.")
AttributeError: 'Restaurant' object has no attribute 'resaurant_name'
拼写错误
学习进度慢如蜗牛啊
看了代码真的不会写
写的时候会不断回去抄
抄了也不知道为什么
发现不理解
大家都是怎么学习的呢
/ㄒoㄒ/~~
'''
有错误欢迎指正~
原创哦,转载请注明~感恩的心♥