今天又起雾了 发表于 2020-9-16 10:38:23

39讲第四题

class C:
      num = 0
      def __init__(self):
                self.x = 4
                self.y = 5
                C.count = 6
请问以下类定义中哪些是类属性,哪些是实例属性?
C.count这个是啥,self.x = 4self.y = 5 这两个不明白是实例属性?
大佬最近学习类,感觉对自己产生怀疑很大呀,不看答案连题都看不明白,听的也是迷迷糊糊的,求推荐各位大佬学习类的心得!!!

sunrise085 发表于 2020-9-16 11:26:51

这个类定义了两个类属性,分别是num和count,两个实例属性,分别是x和y
但是两个类属性有区别,num在没有实例对象之前就已经创建,count是在有实例对象时才会创建,若没有对C类进行实例化,那是不会有类属性count的。

今天又起雾了 发表于 2020-9-16 12:10:10

sunrise085 发表于 2020-9-16 11:26
这个类定义了两个类属性,分别是num和count,两个实例属性,分别是x和y
但是两个类属性有区别,num在没有 ...

x,y 没有被调用怎么说是实例属性呢

sunrise085 发表于 2020-9-16 12:32:40

今天又起雾了 发表于 2020-9-16 12:10
x,y 没有被调用怎么说是实例属性呢

这与是否被调用无关
__init__是实例化对象初始化函数,该函数的第一个参数(self)一定是该类实例化对象,而下面定义x和y的时候使用了self,那就说明这两个是实例属性
count定义的时候直接使用的是类名称C,所以count是类属性

今天又起雾了 发表于 2020-9-16 12:41:11

sunrise085 发表于 2020-9-16 12:32
这与是否被调用无关
__init__是实例化对象初始化函数,该函数的第一个参数(self)一定是该类实例化对象 ...

谢谢大佬,明白了一点
页: [1]
查看完整版本: 39讲第四题