我在这样一个班级里有一个班:
class Robot(object):
def __init__(self):
self.name = 'ganken'
class Speaker(object):
pass
假设我想从扬声器访问
最佳答案
您可以使Speaker
成为Robot
的子类:
class Robot(object):
def __init__(self):
self.name = 'ganken'
class Speaker(Robot):
def get_name(self):
return self.name
当您创建
Speaker
的实例时,它现在将具有与其关联的ganken名称。s = Speaker
s.get_name()
输出:
'ganken'
您也可以调用
s.name
,它仍然会返回'ganken'
,但通常您希望在类中定义函数以获取和设置类的不同属性(如果需要更多信息,请查找getter和setter)。我可能误解了你的问题。如果要访问说话人类中Robot类的实例的名称(并且不一定要使说话人成为Robot的子类),可以将类定义为:
class Robot(object):
def __init__(self):
self.name = 'ganken'
class Speaker(object):
def get_robot_name(self, robot):
return robot.name
注意,您可以将robot实例传递到本例中的
get_robot_name
函数中。演示:
r = Robot()
s = Speaker()
s.get_robot_name(r)
'ganken'
关于python - python从较低级别的类访问高层的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52549143/