导入时分配模块对象

时间:2019-04-20 10:48:47

标签: python python-3.x python-2.7

我正在尝试从模块中导入一个空列表,并尝试为其分配一个不同的值。但是显然Python不支持模块项分配。有什么其他方法可以解决这个问题?

在a.py

b=[]

在2.py

import a
list1=b
list1[0]=1
list1[1]=2
list1[2]=3

因此,当我们执行此操作时,将收到“模块对象不支持项目分配”错误。 我们该如何解决?

1 个答案:

答案 0 :(得分:0)

代码执行此操作

import a
list1=b

您似乎期望b与模块b中定义的a相同。但事实并非如此。要达到您的期望,您的代码应该要么完成

list1=a.b

或者应该做

from a import b
list1=b

没有这些方法之一,Python会将b中的2.pyb中的a.py完全分开。

看起来像您期望的那样

import a

a.py命名空间中2.py中的所有名称命名。而其他一些语言的导入也是如此(例如Turbo Pascal use)。您可以像这样

在Python中完成此操作
from a import *

但是那被认为是糟糕的Python风格,因为在一般情况下,您真的不知道您的import语句要导入什么。