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 类初始化,我想要从主程序中所示的实例变量集中的当前值。
我不完全确定你想要的最终结果是什么。
无论如何,这是您要找的吗?
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"。
类方法是绑定到类而不是类的对象的方法。他们有权访问类的状态,因为它采用指向类而不是对象实例的类参数。
这是你要找的吗?如果没有,你能更详细地解释这个问题吗?