|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位老师,我写了一个嵌套函数,函数代码如下:
def outer():
x = 123
print(f'内部函数调用前,外部函数中x的值是{x}') #打印语句1
def inner():
x = 250
print(f'在内部函数中x的值是{x}') #打印语句2
return inner()
print(f'内部函数调用后,外部函数中x的值是{x}') #打印语句3
当我运行这个outer函数后,得到的结果如下:
内部函数调用前,外部函数中x的值是123
在内部函数中x的值是250
在我的问题如下:
1:为何”打印语句3”未执行显示?
2:如何让内部函数x的值赋值给外部函数,即期望的运行结果如下
内部函数调用前,外部函数中x的值是123
在内部函数中x的值是250
内部函数调用后,外部函数中x的值是250
3:反之, 如何让外部函数中的x去赋值给内部函数x的值, 即期望的运行结果如下
内部函数调用前,外部函数中x的值是123
在内部函数中x的值是123
内部函数调用后,外部函数中x的值是250
烦请各位大侠老师指点,谢谢!
本帖最后由 jackz007 于 2024-9-5 09:53 编辑
- def outer():
- x = 123 # 定义 x 为局部变量,所有属于本函数的语句(包括 inner())皆可访问到该变量
- print(f'内部函数调用前,外部函数中x的值是{x}') # 打印语句1
- def inner():
- x = 250 # 定义 x 为局部变量,从而与外层函数的同名变量 x 脱钩
- print(f'在内部函数中x的值是{x}') # 打印语句2
- return inner() # return 语句会退出 outer() 函数
- print(f'内部函数调用后,外部函数中x的值是{x}') # return 后面的语句,永远不可能被执行
复制代码
在 outer() 中定义的变量 x 在 inner() 内是可以被访问的,只不过是只能读取,不能改变其数值,如果想改变其数值,那么,在 inner() 内就应该使用
来定义变量 x,声明函数 inner() 内使用的变量 x 来自外层函数,这样,就可以自由改变其数值了。
return 一定是一个函数内可以被执行到的最后一条语句,由于打印语句 3 位于 return 语句的后面,所以,永远不可能被执行。
|
|