example1
,example 2
和example 3
有何不同之处。我已经尝试但什么都没有。我想我错过了一些或没有正确使用过。
示例1:
def ex1(var1=g_var):
pass
def ex2():
global g_var
g_var = True
ex1()
if __name__ == '__main__':
ex2()
示例2:
def ex1():
print(g_var)
# pass
def ex2():
global g_var
g_var = True
ex1()
if __name__ == '__main__':
ex2()
示例3:
g_var = True
def ex1(var1=g_var):
pass
def ex2():
ex1()
if __name__ == '__main__':
ex2()
似乎example 1
和example 3
是相同的。
example 2
和example 3
运行良好。但是example 1
给了我错误NameError: global name 'g_var' is not defined
。
答案 0 :(得分:3)
默认值在定义时进行评估。目前,示例1中未g_var
定义。