猛男必看 发表于 2020-6-27 22:14:15

python中的继承问题

import random as r
class Fish:
    def __init__(self):
      self.x=r.randint(0,10)
      self.y=r.randint(0,10)
    def move(self):
      self.x=-1
      print('我的位置是:',self.x,self.y)
class Goldfish(Fish):
    pass
class Carp(Fish):
    pass
class Salmon(Fish):
    pass

class Shark(Fish):
    def __init__(self):
      self.hungry=True
    def eat(self):
      if self.hungry:
            print('吃货的梦想就是天天有的吃')
            self.hungry=False
      else:
            print('太棒了,吃不下!')


各位大神们,倒数第三行的'self.hungry=False'是什么意思,希望各位不吝赐教

Twilight6 发表于 2020-6-27 22:19:14

本帖最后由 Twilight6 于 2020-6-27 22:21 编辑


调用类时候 默认 self.hungry=True 是 True也就是默认是饥饿状态的

当你调用 eat 也就是开始吃东西时候,因为开始时候 self.hungry=True所以 if 条件成立 也就是此时是 饿的状态

if 条件成立了就开吃了,那么吃完会怎么样呢?肯定是吃饱了呀,所以这个时候把饥饿属性设置为 self.hungry= False 就是吃饱了,不饿了的意思

所以如果下次你继续调用 eat 方法,因为 self.hungry被重新赋值为了 False 那么下次判断就会执行 else 的语句 也就是打印太棒了,吃不下! 那句话

也就不会继续继续吃了哈哈

这样讲可以理解嘛???

实际上这里的 self.hungry属性就是判断它是否吃饱的属性~

猛男必看 发表于 2020-6-27 22:23:57

Twilight6 发表于 2020-6-27 22:19
调用类时候 默认 self.hungry=True 是 True也就是默认是饥饿状态的

当你调用 eat 也就是开始吃东西 ...

万分严重表示感谢!!!!!!!!!

Twilight6 发表于 2020-6-27 22:27:52

猛男必看 发表于 2020-6-27 22:23
万分严重表示感谢!!!!!!!!!

哈哈哈   客气客气啦~~~

小甲鱼的铁粉 发表于 2020-6-27 22:38:19

学到了
页: [1]
查看完整版本: python中的继承问题