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

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が定義され、関数はそこにある属性にアクセスできるようになりました。directionpositionsecond.__init__

于 2013-04-14T14:05:02.333 に答える