3
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__另一个类中获取变量?

4

1 回答 1

8

你不能。direction是函数的局部变量__init__,并且在该函数之外不可用。

甚至根本不使用该变量;它可以从函数中删除,并且什么都不会改变。

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

也许您想先初始化父类,然后实际存储positionself

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

现在定义selfdirectionandposition属性,您的second.__init__函数可以在那里访问这些属性。

于 2013-04-14T14:05:02.333 回答