python 里内嵌函数是可以修改外部环境里的变量的
python 里内嵌函数是可以修改外部环境里的变量的
关键是细节. 如果是简单变量类型, 那么不可以. 但是如果是容器类变量, 则没问题了.
代码如下:
class G:
pass
def f():
a=11
b=22
x=[1, 2, 3]
g=G()
g.abc=2
def iner():
global c # 如果想要把内部变量传递到外部环境里, 就必须先在内部函数里声明为全局变量
c=a+b
# b *=100 # 内部函数不能修改 简单型外部变量
x.append([4,5,6]) # 但是可以修改容器类外部变量, 比如list型的
print('x=', x)
print(a,b,c)
print(x)
g.abc=200
g.x=555
print(g.abc)
iner()
print(a,b,c)
print(x)
print(f'g.abc={g.abc}')
print(g.x)
运行结果:
f()
x= [1, 2, 3, [4, 5, 6]]
11 22 33
[1, 2, 3, [4, 5, 6]]
200
11 22 33
[1, 2, 3, [4, 5, 6]]
g.abc=200
555
duanqs
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步