我正在尝试从模块导入空列表并尝试为其分配不同的值。但显然Python不支持模块项分配。解决这个问题的不同方法是什么?
在 a.py
b=[]
在 2.py
import a
list1=b
list1[0]=1
list1[1]=2
list1[2]=3
因此,当我们这样做时,我们会收到"模块对象不支持项目分配"错误。我们如何解决这个问题?
当你的代码这样做时
import a
list1=b
您似乎期望b
与您在模块 a
中定义的b
相同。但事实并非如此。要执行您期望的操作,您的代码应该执行
list1=a.b
或者它应该做
from a import b
list1=b
如果没有这些方法之一,Python 将 b
in 2.py
视为与 a.py
中的b
完全独立的变量。
看起来你期待
import a
使a.py
2.py
命名空间的一部分中的所有名称。其他一些语言的导入就是这样工作的(例如 涡轮帕斯卡 use
(。你可以在Python中做到这一点,就像这样。
from a import *
但这被认为是糟糕的 Python 风格,因为在一般情况下,你真的不知道你的 import
语句在导入什么。