main.py
...
person = cPerson("xyz", "ozp")
...
person.set_name("somename")
...
csystem = cSystem()
...
cperson.py
class cPerson:
def __init__(self, addr, client):
self.addr = addr
self.client = client
self.name = None
def set_name(self, name):
self.name = name
csystem.py
from cperson import cPerson
class cSystem(cPerson):
def __init__(self):
print(self.name)
我可以通过这种方式从父类访问self.name吗?我收到错误消息:
AttributeError: 'cSystem' object has no attribute 'name'
我不想从csystem类初始化,我想从实例变量集中获取当前值,如主程序中所示。
答案 0 :(得分:0)
我不确定您希望最终结果是什么。
无论如何,这是您要寻找的东西吗?
class cPerson:
name = None
def __init__(self, addr, client):
self.addr = addr
self.client = client
@classmethod
def set_name(cls, value):
cls.name = value
class cSystem(cPerson):
def __init__(self, addr, client):
super().__init__(addr, client)
print(self.name)
person = cPerson("xyz", "ozp")
person.set_name('Jake')
csystem = cSystem("xyz", "ozp")
上面的代码返回“ Jake”。
类方法是绑定到类而不是类对象的方法。他们可以访问类的状态,因为它需要一个指向该类而不是对象实例的类参数。
这是您要找的东西吗?如果不能,您能否更详细地解释问题?