class A:
# 类属性,所有实例对象共享的,对象内存空间是私有的,互相隔离的
# 类实例对象可以调用实例对象方法,类方法,静态方法
# 类对象可以调用静态方法
aa = 1
test_list = []
def __init__(self, x, y):
self.x = x
self.y = y
def app(self, t):
self.test_list.append(t)
@classmethod
def capp(cls, t):
cls.test_list.append(t)
# 静态方法是用于不同类可以定义相同名称方法
@staticmethod
def sapp(t):
A.test_list.append(t)
a = A(2, 3)
print(a.x, a.y, A.aa)# 2 3 1
A.aa = 100
print(A.aa, a.aa) # 100 100
# 新建一个a的属性aa, 100赋值给该aa
a.aa = 101
print(A.aa, a.aa) # 100 101
print(id(A.aa), id(a.aa)) # 会发现值不一样,所以a.aa是新建,即使和A.aa同名,不要在对象中创建与类同名属性,会混淆
A.capp(1)
print(A.test_list, a.test_list) # 都为[1]
A.sapp(2)
print(A.test_list, a.test_list) # 都为[1,2]
a.app(3)
print(A.test_list, a.test_list) # 都为[1,2,3]
python类和对象属性
于 2024-07-06 17:28:18 首次发布