虽然你的问题在提供细节方面很枯燥,但我还是从两个方面来理解你的问题。在
方法1
如果要访问类外函数中的类变量,则:class Class:
# do something
# example:
def __init__(self):
self.var = 2
print(self.var)
def outsideFunc():
# operations you want to do
# example:
print(a.var * 3)
结果
^{pr2}$
请注意,outsideFunc()可以在程序期间的任何时候定义。但是,只能在初始化类之后调用outsideFunc()。在
这是因为filepath是类procfile的一个实例,该类只有在初始化后才定义。初始化类后的句点后面可以跟各种对象,例如函数Class.func()、变量Class.var,甚至嵌套类Class.subClass
方法2
如果要访问类内部的类变量,则:class Class:
# do something
# example:
def __init__(self):
self.var = 4
print(self.var)
def func(self):
# operations you want to do
# example
print(self.var + 5)
结果>> b = Class()
4
>> b.func()
9
只需执行与之前相同的操作,即通过类中的self.var访问变量。在
比较
方法1要求在外部函数中调用类变量时,它必须与用于初始化类的变量名相同。因此,当您执行a = Class()时,任何引用初始化类的类之外的函数都必须执行a.object,其中object可以是函数、变量或子类。在
方法2需要同样的东西。但是,当类中的函数引用它的一个变量时,它需要使用self.object,其中object可以是函数、变量或子类。在
两者都要求首先用varName = className()初始化类,其中varName只是一个用来引用类的变量。然后,像以前一样使用varName.object