首页IT科技python面向对象三大特性(python中的面向对象)

python面向对象三大特性(python中的面向对象)

时间2025-05-04 23:50:59分类IT科技浏览3512
导读:运行后得:...

运行后得:

# 如果说 class 是 英雄 # 那么可以说 魔法方法 是英雄的 被动技能 自动生效 基于一定的条件来触发 # 重构->重命名 修改某一范围的所有特定变量名称          ,一般选择当前文件 # 魔法方法 __xxx__() print(魔法方法) # # add str init del class WashingMachine: # 洗衣机类 def __init__(self, width, height): # 初始化属性 self.width = width self.height = height def __add__(self, other): # 当执行加法时自动触发 self.width += other self.height += other return self # 感觉是迭代               ,返回 对象      ,就可以加多个数 def __str__(self): # 当使用print时触发 """海尔说明书""" return f高度为:{self.height}\n宽度为:{self.width} def __del__(self): # 当删除时触发 print(del魔法方法被触发了) haier = WashingMachine(850, 595) # 触发__init__ haier + 2 + 3 # 触发__add__ print(haier) # 触发__str__ del haier # 触发__del__
# 私有属性 在属性名称的前面加一个下划线 # # 烤地瓜 红薯 class SweetPotato: def __init__(self): """初始化""" self._times = 0 self._status = 生的 self._seasoning = [] # 加的调料 def roasted_Sweet(self, times): # 烤地瓜 """烤地瓜""" # 0-2分钟是生的 2-5是半生 5-8刚刚好 8分钟以上烤焦了 self._times += times # 可能烤了之后再次烤 if 0<= self._times <= 2: self._status = 生的 elif 3 <= self._times <= 5: self._status = 半生 elif 6 <= self._times <= 8: self._status = 刚刚好 elif self._times >= 9: self._status = 烤焦了 def add_seasoning(self, *season): # 增加调料 这有个不定长传参 """增加调料""" for i in season: self._seasoning.append(i) def __str__(self): # 查看红薯的状态 return f红薯烤的时间:{self._times}分钟\n \ f红薯的状态是:{self._status}\n \ f红薯目前的调料是:{" ".join(self._seasoning)} sweet1 = SweetPotato() sweet1.add_seasoning(番茄酱, 孜然) sweet1.roasted_Sweet(3) sweet1.roasted_Sweet(3) sweet1.add_seasoning(番茄酱, 孜然) print(sweet1)
# 今日练习 1)定义名为MyTime(我的时间)的类 2)其中应有三个实例变量 时hour 分minute 秒second 3)对时分秒进行初始化     ,写入__init__()中 4)定义方法get和set方法               , get方法获取时间          ,set可以设置时间 5)调用set设置时间 调用get输出时间 print() print(今日练习) class MyTime: def __init__(self, hour, minute, second): """初始化""" self.hour = hour self.minute = minute self.second = second def set(self, h, m, s): """时间变化""" self.hour += h self.minute += m self.second += s def get(self): """输出时间""" print(f时间是{self.hour}小时{self.minute}分钟{self.second}秒) data = MyTime(23, 9, 1) data.set(0, 1, 59) data.get()
声明:本站所有文章     ,如无特殊说明或标注               ,均为本站原创发布          。任何个人或组织          ,在未征得本站同意时,禁止复制          、盗用               、采集     、发布本站内容到任何网站          、书籍等各类媒体平台               。如若本站内容侵犯了原著者的合法权益               ,可联系我们进行处理     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
扈从(HucorePro – 一款免费的Typecho单栏主题适合写作)