对类和定义的误解

时间:2017-04-15 14:47:03

标签: python class

我得到了这两个类定义:

class Weird(object):
    def __init__(self, x, y): 
        self.y = y
        self.x = x
    def getX(self):
        return x 
    def getY(self):
        return y

class Wild(object):
    def __init__(self, x, y): 
        self.y = y
        self.x = x
    def getX(self):
        return self.x 
    def getY(self):
        return self.y

X = 7
Y = 8

前两个问题没问题;他们只是问了

w2 = Wild(X, Y)
print(w2.getX())

(即7)和

print(w2.getY())

让我感到困惑的是问题

w1 = Weird(X, Y)
print(w1.getX())

print(w1.getY())

他们的答案显然都是“错误”,但我不明白为什么会这样。给出的错误分别是“x未定义”和“y未定义”,但我认为xy是我们放入函数的参数。我错过了什么?

1 个答案:

答案 0 :(得分:0)

在第一堂课中,xy是构造函数参数。 它们不在此范围之内。

getX函数中,x不存在。您需要从self引用中检索它,例如在您的第二个类中。