您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

全局词典不需要关键字global来修改它们吗?

全局词典不需要关键字global来修改它们吗?

原因是行

stringvar = "bar"

是模糊的,也可能是指一个@R_502_1986@, 或者 它可以被称为创建新的本地变量stringvar在这种情况下,除非global已使用关键字,否则Python认将其假定为局部变量。

但是,线

dictvar['key1'] += 1

完全是明确的。它只能引用@R_502_1986@dictvar,因为dictvar必须已经存在该语句才不会引发错误

这并非仅针对字典-列表也是如此:

listvar = ["hello", "world"]

def listfoo():
    listvar[0] = "goodbye"

或其他种类的物体:

class MyClass:
    foo = 1
myclassvar = MyClass()

def myclassfoo():
    myclassvar.foo = 2

每当使用mutation操作而不是重新绑定操作时,都是如此。

其他 2022/1/1 18:44:48 有483人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶