为类属性赋值可以通过以下几种方式:
class MyClass:
class_attr = "Hello"
obj1 = MyClass()
print(obj1.class_attr) # 输出:Hello
obj2 = MyClass()
print(obj2.class_attr) # 输出:Hello
class MyClass:
pass
MyClass.class_attr = "Hello"
obj = MyClass()
print(obj.class_attr) # 输出:Hello
cls
参数来为类属性赋值。例如:class MyClass:
class_attr = None
@classmethod
def set_class_attr(cls, value):
cls.class_attr = value
obj = MyClass()
print(obj.class_attr) # 输出:None
obj.set_class_attr("Hello")
print(obj.class_attr) # 输出:Hello
需要注意的是,如果在实例对象中对类属性进行赋值,会创建一个与类属性同名的实例属性,该实例属性会屏蔽类属性。例如:
class MyClass:
class_attr = "Hello"
obj = MyClass()
obj.class_attr = "World"
print(obj.class_attr) # 输出:World
print(MyClass.class_attr) # 输出:Hello
在这种情况下,实例对象obj
的class_attr
是一个实例属性,而MyClass
的class_attr
仍然是类属性。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云