【问题标题】:Getting __init__ variable获取 __init__ 变量
【发布时间】:2013-04-06 15:59:45
【问题描述】:
class first(object):
    def __init__(self, room, speed):
        self.position = room
        self.speed = 20
        direction = random.randint(0,359)
class second(first):
    def __init__(self)
        self.way = first.direction
        self.now = first.self.position

我收到一个错误,如何从另一个类的__init__ 获取变量?

【问题讨论】:

    标签: python class variables object function


    【解决方案1】:

    你不能。 direction__init__ 函数的 local 变量,并且在该函数之外不可用。

    该变量根本没有使用甚至;它可以从函数中删除,不会有任何改变。

    __init__ 方法旨在为新创建的实例设置属性,但您的 second 类似乎希望找到 first 上的属性。您也不能这样做,因为您要访问的那些属性仅在__init__ 中设置。您只能在first实例 上找到position,而不是在first 类本身上。

    也许您想先初始化父类,然后将position实际存储在self上:

    class first(object):
        def __init__(self, room, speed):
            self.position = room
            self.speed = 20
            self.direction = random.randint(0,359)
    
    class second(first):
        def __init__(self, room, speed)
            super(second, self).__init__(room, speed)
            self.way = self.direction
            self.now = self.position
    

    现在self 定义了directionposition 属性,您的second.__init__ 函数可以访问这些属性。

    【讨论】:

    • +1 用于猜测 OP 真正想要的编辑。我正在编写相同的代码,但你打败了我:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多