2 回答
TA贡献1780条经验 获得超3个赞
这与全球框架有关。
如果在类中创建变量,它将仅存在于该函数内部。如果要将类(或函数)中的变量“转移”到全局框架,则使用global。
class firstClass():
global my_var_first
my_var_first = "first variable"
print(my_var_first) # This will work, because the var is in the global frame
class secondClass():
my_var_second = "second variable"
print(my_var_first) # This will work, as the var is in the global frame and not defined in the class
print(my_var_second) # This won't work, because there is no my_var_second in the global frame
为了可视化内存,您可以使用pythontutor,因为它将逐步显示内存的创建方式。
我希望我能帮到你!
编辑
我想我应该补充一点,如果在类/函数中定义一个与全局框架中的变量同名的变量,它将不会删除全局变量。相反,它将在自己的框架中创建一个新的(具有相同名称)。如果可用,类或函数将始终在其自己的框架中使用该变量。
x = 5
def print_variable():
x = 3
print(x)
print(x)
print_variable()
# OUTPUT:
# 5
# 3
添加回答
举报