我正在尝试从模块中导入一个空列表,并尝试为其分配一个不同的值。但是显然Python不支持模块项分配。有什么其他方法可以解决这个问题?
在a.py
b=[]
在2.py
import a
list1=b
list1[0]=1
list1[1]=2
list1[2]=3
因此,当我们执行此操作时,将收到“模块对象不支持项目分配”错误。 我们该如何解决?
答案 0 :(得分:0)
代码执行此操作
import a
list1=b
您似乎期望b
与模块b
中定义的a
相同。但事实并非如此。要达到您的期望,您的代码应该要么完成
list1=a.b
或者应该做
from a import b
list1=b
没有这些方法之一,Python会将b
中的2.py
与b
中的a.py
完全分开。
看起来像您期望的那样
import a
将a.py
命名空间中2.py
中的所有名称命名。而其他一些语言的导入也是如此(例如Turbo Pascal use
)。您可以像这样
from a import *
但是那被认为是糟糕的Python风格,因为在一般情况下,您真的不知道您的import
语句要导入什么。