python-3-用“类”创建餐厅的类和实例

学习内容:

  • 创建对象的类别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ㄒ/~~
'''

有错误欢迎指正~

原创哦,转载请注明~感恩的心♥

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值