关于类属性的疑问
第一个代码:class A:
count=0
def __init__(self)
A.count+=1
第二个代码:
class A:
count=0
def __init__(self):
self.count+=1
a=A()
a.count
我想问一下count不是类属性吗?类属性不是只有类才能调用吗比如第一个代码的A.count ,为什么第二个代码是用self调用的:self.count,还有用了a.count也调用了不知道为什么?能解释一下属性的调用方法吗 第一个是类属性,第二个是实例属性
第二个代码是指对被实例化后的对象进行 + 1 的
而第一个是对最原始的 类对象进行 +1 的
第一个会影响所有后续被实力的对象而第二个不影响 本帖最后由 Twilight6 于 2020-6-19 10:22 编辑
举个例子吧:
先运行第一个代码看看结果:
class A:
count=0
def __init__(self):
A.count+=1
a = A()
print(a.count)
b = A()
print(b.count)
c = A()
print(c.count)
print(A.count)
返回结果:
1
2
3
3
在运行第二个代码看看结果:
class A:
count=0
def __init__(self):
self.count+=1
a=A()
b=A()
print(A.count)
print(a.count)
print(b.count)
返回结果:
0
1
1
简单说,第一个代码就是在根本上的类进行改变,会影响所有后续被实例化的对象
而第二个代码每次实力对象都是独立的互不影响
页:
[1]