类的静态属性意味着无论创建多少个对象,他们都共用这一个属性。Python 的静态方法是有介绍的,但是Python的静态属性如何实现,却难以找到解决方案。经过不懈百度,终于,在网上看到一段神奇的代码,经测试,确实实现了静态属性的设置。经自己修改简化,特在此记录下来,以免以后忘记。
class Dog:
def __init__(self):
self.name = ""
def set_name(self,newname):
self.name = newname
def get_name(self):
return self.name
class Parent: # 定义父类
mydog = Dog()
mydog.set_name("hello")
def __init__(self):
print("Parent init")
def setAttr(self, dog):
Parent.mydog = dog
def getAttr(self):
return Parent.mydog
class Child(Parent): # 定义子类
def __init__(self):
super().__init__()
print("Child init")
if __name__ == '__main__':
child1 = Child()
child2 = Child()
child3 = Child()
print(child1, child1.getAttr())
print(child2, child2.getAttr())
print(child3, child3.getAttr())