在父类__init __()中调用子类变量?

时间:2014-10-29 18:08:23

标签: python class inheritance

如果这是一个微不足道的问题,我道歉。我试图将子类变量作为父类__init__()中的参数传递,但得到一个未定义的名称'警告。

例如:子类(JumpingJacks)变量PATH被视为未定义的名称'当我尝试在父类(Exercise)实例化中使用它时。

class JumpingJacks(Exercise):
    """Creates JumpingJack instance, an Exercise with default attributes
    common to the Exercise (parent) and unique to JumpingJacks:

    Exercise(name, reps, per_side=False, path=None)
    """
    PATH = "Jumping Jacks.PNG"
    def __init__(self, reps, name="Jumping Jacks"):
        Exercise.__init__(self, 
                          name, reps, 
                          per_side=False, 
                          path=PATH)

我怀疑答案与类继承有关,但由于PATH在父类__init__()期间是本地的,我不明白为什么PATH未定义。我一直无法找到简明扼要的解释。这是我误解或做错了的哪一部分?

我意识到我可以将路径硬编码到父类__init__()中,如下所示:

path="Jumping Jacks.PNG"

而不是:

path=PATH

但我认为如果所有实例共享公共变量,则使用类变量的更好做法。如果这种思维方式不正确,请纠正我。

如何调用父类__init__()中的子类变量?

0 个答案:

没有答案