如何访问从类构造函数到类函数的变量?从类构造函数访问变量到Python中的类函数
代码:
class evol:
k = 0
m = 0
def __init__(self, file1):
InFile = open(file1, 'rb')
InFile = csv.reader(InFile, delimiter='\t')
for rec in InFile:
self.k += int(rec[0])
def method1():
print k
我得到的错误, NameError:全局名称 'K' 是没有定义
你需要'def method(self):print self.k'。您可能熟悉其他使用'this'关键字的编程语言,它基本上就是这样。 “自我”只是传递自身参照的惯例。你也可以做'def method(self):print evol.k'。在python类中,可以像这样访问变量。在任何一种情况下,'method1'都需要param'self',以便它知道它的'绑定方法'而不是'static'或其他函数 – ZWiki 2014-10-10 16:00:06
谢谢。当我使用evol.k访问method1()中的k时,它将打印在类下定义的初始值。但是,使用self.k,它将从构造函数中打印修改后的值。 – PyPerl 2014-10-10 16:10:58
这是真的。在Python中,“类变量”将保留该类的值,并且可以通过该类进行修改。因为'__init__'下面的'self.k = 12'没有'self'作为参考,所以它不知道它是指谁。这就是为什么初始化'__init__'下的变量总是比较好的。 – ZWiki 2014-10-10 18:59:31