如何为所有类方法使用定义变量?

时间:2015-11-24 20:46:22

标签: python-3.x

我需要定义一个要在一个类的所有方法中使用的变量。

class A:
    def method1(self):
        for i in range(N):
            *do something with M*
    def method2(self):
        for i in range(N):
            *do other thing with M*

等等。 我需要做的就是在类描述的开头某处定义N和M变量。我尝试在构造函数中定义它,如下所示:

class A:
    def __init__(N, M):
        self.N=N
        self.M=M
    def method1(self):
        ...

in倾向于使用此参数调用A一次。但是,如果我现在还没有真正使用构造函数,那还有另一个错误。然后我将这些变量添加为每个方法的参数:

...
def method1(self, N, M):
    ...

那段时间它完美无缺。但是每次我打电话给A.methodX()时我都不想输入数值,而且我100%确定有一两种方法符合我的要求。

1 个答案:

答案 0 :(得分:0)

你是在正确的轨道上,所以我写了一个简短的版本,我怀疑你想做一些'调试'嵌入代码。请注意类aa = A(1,2)

的实例化
class A:
    def __init__(self, N, M):
        self.N = N
        self.M = M
    def method1(self):
        print ("iterate N")
        for i in range(self.N):
            print (str(i) + "\n")
    def method2(self):
        print ("iterate M")
        for i in range(self.M):
            print (str(i) + "\n")


aa = A(1, 2)
aa.method1()
aa.method2()

请注意,我在这里所做的是创建实例变量 - 您还可以通过在方法之外实例化它们来创建类变量。所以iVar成为了类变量。

class A:

    iVar = 0

    def __init__(self, N, M):
            self.N = N
            self.M = M

    ......