gpt4 book ai didi

python - 如何从 main 引用嵌套在类中的定义变量

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:57 25 4
gpt4 key购买 nike

我想知道如何(在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()>Variable in main 那样放置的变量?

最佳答案

您所调用的 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 使其成为全局变量。否则,变量默认是本地的,并且只能在同一范围内访问。

关于python - 如何从 main 引用嵌套在类中的定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44396695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com