|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
result = []
def xiatiya(n):
if n > 0:
result.insert(0,n%10)
xiatiya(n // 10)
xiatiya(12345)
print(result)
这里def为啥可以对result这个全局变量进行修改呢?我并没有声明global呀
本帖最后由 傻眼貓咪 于 2021-10-8 10:06 编辑
- var = [1, 2, 3] # 这是全局变量
- def A():
- var.append("banana") # 这里的 var 是全局变量,增加新值
- def B():
- var = [0, 0, 0] # 定义一个新列表,取和函数外面的全局变量相同名字 var,虽然名字相同,但一个是局部变量,一个是全局变量
- var.append("apple") # 这里的 var 变成局部变量,增加新值,完全不影响全局变量(意思就是函数内部变量自己跟自己玩)
- A() # 会影响全局变量
- B() # 不影响全局变量
- print(var)
- def C():
- global var # 定义全局变量(意思就是说这里不管怎样,只要我用 var 就是全局变量)
- var = [0, 0, 0] # 改变全局变量的地址和值
- var.append("小白") # 增加新值
- C() # 会影响全局变量
- print(var)
复制代码- [1, 2, 3, 'banana']
- [0, 0, 0, '小白']
复制代码
|
|