jtxs0000 发表于 2020-8-20 13:14:29

面向对象基础问题

我想把最后两句代码合成一句,和完后为啥运行出来的结果不一样呢{:10_272:}



class Potato:

    def __init__(self):
      self.action = 0

      self.zhuangtai = "是生的"


    def cook(self,time):

      self.action += time      
      

      if 0 < self.action <= 3:
            self.zhuangtai = "还是生的"
            

      elif 3 < self.action <= 5:
            self.zhuangtai = "还是半生不熟"

      elif 5 < self.action <= 8:
            self.zhuangtai = "终于熟了"

      elif self.action > 8:
            self.zhuangtai = "烤糊了"

      return self.zhuangtai
      
    def __str__(self):
      return f"地瓜烤了{self.action}分钟,它{self.zhuangtai}"

digua = Potato()
digua.cook(2)
print(digua)

zltzlt 发表于 2020-8-20 13:15:29

你是怎么合的?

jtxs0000 发表于 2020-8-20 13:17:41

zltzlt 发表于 2020-8-20 13:15
你是怎么合的?

就是最后两句合成
print(digua.cook(2))
这样

zltzlt 发表于 2020-8-20 13:22:58

jtxs0000 发表于 2020-8-20 13:17
就是最后两句合成

这样

你这句代码打印的是 digua.cook() 的返回值,而不是 digua

jtxs0000 发表于 2020-8-20 13:28:40

zltzlt 发表于 2020-8-20 13:22
你这句代码打印的是 digua.cook() 的返回值,而不是 digua

就是说没办法合在一起是吗{:10_266:}

永恒的蓝色梦想 发表于 2020-8-20 13:43:44

jtxs0000 发表于 2020-8-20 13:28
就是说没办法合在一起是吗

没办法,合成一起有意义嘛

zltzlt 发表于 2020-8-20 13:43:51

jtxs0000 发表于 2020-8-20 13:28
就是说没办法合在一起是吗

是的(除非用分号强制把两行代码写成一行)

jtxs0000 发表于 2020-8-20 14:04:50

zltzlt 发表于 2020-8-20 13:43
是的(除非用分号强制把两行代码写成一行)

好吧

jtxs0000 发表于 2020-8-20 14:05:24

永恒的蓝色梦想 发表于 2020-8-20 13:43
没办法,合成一起有意义嘛

纯粹就是想试试而已{:10_256:}
页: [1]
查看完整版本: 面向对象基础问题