什么时候需要用到类Class?
最近一直在用python写些小程序帮忙工作,一直都是用def函数来完成, 小甲鱼类前面的课程也全部学完了,
类也学了几页, 还没有学完,前面的课程感觉很顺, 到了类感觉就卡住了,
有点难, 不是很理解, 字面理解也知道
它是表示一类的, 一类有共性的东西, 这样就可以继承,
代码重用率好.
但一直没有发现用武之地, 不知道什么时候需要用到class.
有谁能举个简单好理解的例子来说明一下这个时候最好要用class吗? 本帖最后由 Peteryo01223 于 2021-2-20 11:22 编辑
回答:
对于只有几个角色、每个角色仅几个有限功能的 Python 小程序来说,确实,用不用class 无所谓。但大型开发中,class 的拓展性、灵活性、简洁性,几乎是必备的,这样才能有效地由浅入深、避免重复定义同类。
以下是我借鉴的例子,原创为网络大佬。
[*]男人 Men:上战场、吃、喝、拉、撒、睡。
[*]女人 Women:养孩子、吃、喝、拉、撒、睡。
[*]小孩 Children:学文化、吃、喝、拉、撒、睡。
单独给男人、女人、小孩 def 函数,是完全可以实现的,但需要为他们分别定义所有的功能。其中,吃、喝、拉、撒、睡是人都有的功能,我们却不得不编写了三遍。
这时,如果我们使用 class,就能利用继承的思想。如下:
class Human():
def eat(self):
print ('吃饭')
def drink(self):
print ('喝水')
def poopoo(self):
print ('拉屎')
def peepee(self):
print ('撒尿')
def sleep(self):
print ('睡觉')
然后,在 class 后面括号中写入另外一个类名,表示当前类继承另外一个类
class Men(Human):
def 上战场(self):
print ('冲锋陷阵')
class Women(Human):
def 养孩子(self):
print ('孕育后代')
class Children(Human):
def 学文化(self):
print ('好好学习,天天向上')
如此,将多个类共有的方法提取到父类中,子类仅需继承父类即可,而不必一一实现每个方法。
随着你开发的 code 越来越丰富,难免未来你会拓展角色,出现 “小姑娘、小媳妇、老首长、小伙子、少年团、中学生、美国大叔、俄罗斯老太太、仿真机器人” 等等,一系列子类。那么,他们就都可以通过类的继承,得以把常规功能(eat、drink、poopoo、peepee、sleep)复制,并加入各自的特性(婚姻状况、有无后代、是否退休、有无战斗经验、是否属于某团队、是否在校、国籍、有无情感。。。等等)。
目前,Python 运行结果举例:
>>> a = Human() # 实例化父类
>>> a.eat() # 调用其中 eat 的功能
吃饭
>>> b = Men() # 实例化一个子类,男人
>>> b.eat() # 调用其中 eat 的功能,父类里有,这里自然也有
吃饭
>>> b.上战场() # 调用男人 上战场 的功能,父类里没有,是男人独有的,这里也调用成功
冲锋陷阵
>>> c = Women() # 实例化另一个子类,女人
>>> c.eat() # 调用其中 eat 的功能,父类里有,这里自然也有
吃饭
>>> c.养孩子() # 调用女人 养孩子 的功能,父类里没有,是女人独有的,这里也调用成功。
孕育后代
学一下设计模式和类最紧密的是控制反转(工厂模式plus) 就懂有啥用了{:10_253:}
页:
[1]