我想知道(在Python中)如何在类中引用def内部的变量。例如:
class class_name():
.
. # Some more definitions in here
.
def definition_name():
variable_of_interest = 10 # 10 chosen arbitrarily
.
. # Some more definitions in here
.
if __name__ == '__main__':
# Here I want to reference variable_of_interest. Example:
if variable_of_interest = 10
do stuff
更好的是,如果示例如下所示,我如何在main中引用变量:
class class_name():
def __init__(self):
# Some code
def _another_definition():
variable_of_interest = 10
if __name__ == '__main__':
#same as before
所以基本上我如何引用一个像Class()> Def()> Def()>变量一样的变量?
答案 0 :(得分:1)
你所谓的def
实际上是一个函数,或者在这种情况下是一个类中的方法。
方法中定义的变量通常不可用。这就是封装的整个想法。
如果要访问类中的变量,则应该是类或实例变量。
实例中定义的变量成员需要作为类实例的一部分进行访问。它在__init__()
中定义。
例如:
class MyClass:
def __init__(self):
self.data = []
访问:
x = MyClass() # instantiate an object of this class
x.data # access instance member
可以在类定义的顶部定义类变量:
class MyClass:
"""A simple example class"""
i = 12345
然后可以使用MyClass.i
访问它。
请查看此Python tutorial on classes以更好地理解这一点。
如果你真的想在类方法中拥有一个变量,也可以在主上下文中直接访问,那么你可以通过在global
前面加上它来使它成为一个全局变量。否则,变量默认为本地变量,只能在同一范围内访问。