sunyt 发表于 2021-10-10 20:01:47

python小问题

class Turtle:
    def __init__(self, x):
      self.num = x

class Fish:
    def __init__(self, x):
      self.num = x

class Pool:
    def __init__(self, x, y):
      self.turtle = Turtle(x)
      self.fish = Fish(y)
      
    def print_Num(self):
      print(f"水池里有乌龟{self.turtle.num}只,有鱼{self.fish.num}只")


最后一句self.turtle.num中的.num是什么意思,
如果没有.num,self.turtle是什么内容。

大马强 发表于 2021-10-10 20:18:26

self.turtle = Turtle(x)
self.fish = Fish(y)
self.turtle是class Turtle的实例化对象,同理self.fish是class Fish的实例化对象
往简单来看其实和这个是一样的
turtle = Turtle(x)
fish = Fish(y)
两者的区别在于class Pool实例化对象无法访问后者两个变量
假设
p = Pool(1,2)
前者可以这样 p.turtle.num
但后者就不能了,只能通过类来引用Pool.turtle.num

染上灬网络 发表于 2021-10-10 23:35:14

2楼回答专业!!
页: [1]
查看完整版本: python小问题