获得__init__变量

时间:2013-04-14 14:03:11

标签: python class variables object function

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__获取变量?

1 个答案:

答案 0 :(得分:6)

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

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

__init__方法用于在新创建的实例上设置属性,但您的second类似乎想要在first 类上找到属性相反。您也不能这样做,因为您要访问的属性仅在__init__中设置。您只能在position实例上找到first,而不能在first类本身上找到。{/ p>

也许您想先初始化父类,并实际将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__功能可以访问那些属性。