Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入时分配模块对象_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python 导入时分配模块对象

Python 导入时分配模块对象,python,python-3.x,python-2.7,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 因此,当我们这样做时,我们得到的模块对象不支持项分配错误。 我们如何解决这个问题?当您的代码执行此操作时 import a list1=b 您似乎期望b与您在模块a中定义的b相同。但事实并非如此。要实现您的期望,您的代码应该 l

我正在尝试从模块导入一个空列表,并尝试为其分配一个不同的值。但显然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将2.py中的b视为与a.py中的b完全不同的变量

看起来你在等我

import a
使a.py中的所有名称成为2.py命名空间的一部分。其他一些语言中的导入工作就是这样的,例如turbopascal使用。您可以在Python中这样做

from a import *

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

为什么要这样做?a是模块,列表是a.a,因为我们希望在不运行整个操作模块的情况下访问另一个模块中某个模块中的变量。您的导入没有导入列表a,而是导入模块a。因此出现了错误。请将您的列表命名为与模块不同的名称,然后重试。可能list1=a.a。无论如何,它都很难看