在函数中导入导入-Python 2.6
我在同一个文件夹中有两个文件,在函数中导入导入-Python 2.6,python,python-2.6,Python,Python 2.6,我在同一个文件夹中有两个文件,SysDump.py和libApi.py。 在SysDump中,我执行以下操作: from libApi._SysDump import * 在libApi中,我有: def _SysDump(): import cPickle as _cPickle import math as _math from zipfile import ZipFile as _ZipFile import re as _re 但是我得到了一个错误:
SysDump.py
和libApi.py
。
在SysDump
中,我执行以下操作:
from libApi._SysDump import *
在libApi
中,我有:
def _SysDump():
import cPickle as _cPickle
import math as _math
from zipfile import ZipFile as _ZipFile
import re as _re
但是我得到了一个错误:
from libApi._SysDump import *
ImportError: No module named _SysDump
我使用VS2012+PTVS
单步执行代码,执行跟踪在libApi
中转到def\u SysDump()
,但不输入它。问题是,我怎样才能使它只在Python2.6中工作
from libApi._SysDump import *
编写本文时,Python会查找包libApi
和其中名为\u SysDump
的模块。包相当于文件夹,模块相当于单个文件。从你的解释来看,你的情况并非如此。您有一个模块libApi
,带有一个函数\u SysDump
。因此,如果有任何问题,您可以这样做:
from libApi import _SysDump
因此,您将获得对\u SysDump
函数的引用。请注意,运行该函数不会为您提供对所有试图导入的模块的引用。在函数内部,模块将被导入并分配给局部变量。函数结束后,这些引用将消失
如果希望某个模块负责所有导入,可以创建一个执行这些导入的文件,并从该模块导入所有内容:
# imports.py
import cPickle as _cPickle
import math as _math
from zipfile import ZipFile as _ZipFile
import re as _re
然后:
from imports import *
您是否有
\uuuuu init\uuuuuuuu.py
文件?如果没有,您应该能够使用import SysDump
,然后使用SysDump.\u SysDump()
是,我有init.py。对不起,我没有收到。如果在SysDump.py文件中导入SysDump,我会得到什么好处?请向所有人澄清开放性问题。在python中,能否将函数的一部分作为导入?我问这个问题是因为这个_SysDump()是一个函数,而不是一个可以获得导入方法或变量的类。注意,以下划线\u
开头的函数应该是私有的,而不是导出的。有一件事我应该提到,感谢Crazyshezy。def _SysDump()不起作用,但类_SysDump()起作用。还有马克,我确实知道u的意义,但这是一个特例,所以请原谅我使用了u,与它的定义相反。不过,谢谢你提出来。这很有效。特别感谢你教我钓鱼的解释:-)。问题解决了!!谢谢