全局变量使用疑惑

来源:14-7 分析和获取所有的版块 - 1

weixin_慕斯卡4281563

2020-07-28

图片描述

本以为d是一个全局整形变量,可以在func函数里对他进行操作(给它加1),结果不能,提示我func里的那个d是一个局部变量,还没有定义你就想赋值? 但是为什么demo函数里就可以对全局变量c(是list)做追加元素的append操作呢? 我的问题就是 在函数的作用域里对列表追加元素的操作和对整形变量增加1的操作都是操作,两种操作有什么不同?

写回答

1回答

bobby

2020-07-30

d = 0
def add():
    c = d+1
    print(d+1)
add()

这样没有问题

这样理解: 在函数中修改全局变量的时候如果不适用global就会报错比如:

d = 0
def add():
    d = d+1
    print(d+1)
add()

这里是要修改全局变量d 就会报错

0
2
bobby
回复
weixin_慕斯卡4281563
是的,在函数中对于list这些类型可以进行append操作, 但是同样的你要对 d这个全局对象复制还是会报错的
2020-08-03
共2条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2378 学习 · 1158 问题

查看课程