我在这样一个班级里有一个班:

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/

10-12 18:51