为什么我的函数没有在python中执行?
我的代码在调试时没有显示错误,但当我运行它时,它没有显示任何输出。它没有得到函数。在上面的代码中,您调用函数为什么我的函数没有在python中执行?,python,function,variables,Python,Function,Variables,我的代码在调试时没有显示错误,但当我运行它时,它没有显示任何输出。它没有得到函数。在上面的代码中,您调用函数a,该函数创建并设置一个局部变量x,并定义一个嵌套函数,但从未调用该函数。因此,您看不到任何打印 请注意,仅在a中调用b()不是一个好主意,因为此函数将递归地调用自身,而不带停止条件。你可以这样写: def a(): x=20 def b(): global x x=88 print("before calling b",x)
a
,该函数创建并设置一个局部变量x
,并定义一个嵌套函数,但从未调用该函数。因此,您看不到任何打印
请注意,仅在a
中调用b()
不是一个好主意,因为此函数将递归地调用自身,而不带停止条件。你可以这样写:
def a():
x=20
def b():
global x
x=88
print("before calling b",x)
b()
print("after calling b",x)
a()
在上面的代码中,您调用函数
a
,该函数创建并设置一个局部变量x
,并定义一个嵌套函数,但从未调用该函数。因此,您看不到任何打印
请注意,仅在a
中调用b()
不是一个好主意,因为此函数将递归地调用自身,而不带停止条件。你可以这样写:
def a():
x=20
def b():
global x
x=88
print("before calling b",x)
b()
print("after calling b",x)
a()
看起来你真正想要的是以下代码:
def a():
x=20
def b():
global x
x=88
print("before calling b", x)
b()
print("after calling b", x)
a()
此代码测试从a
中调用b
对a
本地变量x
值的影响。不会有任何影响,因为x
不是全局的。产出将是:
def a():
x=20
def b():
global x
x=88
print("before calling b",x)
b()
print("after calling b",x)
a()
如果将b
的定义更改为:
before calling b 20
after calling b 20
您将看到修改x
的效果:
def b():
nonlocal x
x=88
看起来你真正想要的是以下代码:
def a():
x=20
def b():
global x
x=88
print("before calling b", x)
b()
print("after calling b", x)
a()
此代码测试从a
中调用b
对a
本地变量x
值的影响。不会有任何影响,因为x
不是全局的。产出将是:
def a():
x=20
def b():
global x
x=88
print("before calling b",x)
b()
print("after calling b",x)
a()
如果将b
的定义更改为:
before calling b 20
after calling b 20
您将看到修改x
的效果:
def b():
nonlocal x
x=88
您不想调用
b()
?您在后缩进中看到的代码是否100%像您的?您不想调用b()
?您在后缩进中看到的代码是否100%像您的?这看起来就像一个comment@azro这是一个答案。这看起来就像一个comment@azro这是一个答案。