我需要定义一个要在一个类的所有方法中使用的变量。
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%确定有一两种方法符合我的要求。
答案 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
......