小编Var*_*rdd的帖子

为什么不分配空列表(例如[] ="")错误?

在python 3.4中,我正在打字

[] = "" 
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有异常.虽然当然[]不等于""事后.

[] = ()
Run Code Online (Sandbox Code Playgroud)

也行得很好.

"" = []
Run Code Online (Sandbox Code Playgroud)

尽管如此提出例外,

() = ""
Run Code Online (Sandbox Code Playgroud)

尽管如此提出例外.发生什么了?

python syntax variable-assignment

110
推荐指数
2
解决办法
4043
查看次数

imp.load_source是另一个文件而不是.py,但该目录中也存在.py

我有这个设置:

文件:a.ext1 a.py

a.ext1由于某种原因加载a.py,但作为引擎,我需要加载文件a.ext1.

我可以在py3中使它正常工作,但我无法在py2中使用它.

这是我的python2尝试:**这是主要的流程,当然还有更多的代码.

file = os.path.abspath(os.path.expanduser('a.ext1')
directory = os.path.dirname(file)
sys.path.append(directory)
fullname = 'my.name.space.a'
sys.modules['my.name.space'] = imp.new_module('my.name.space')
x = imp.load_source(fullname,file)
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做; x,它会告诉我:

module 'my.name.space' from '<path>/a.ext1'
Run Code Online (Sandbox Code Playgroud)

但如果我做dir(x),它会给我a.py的东西.我希望它能从a.ext1文件中提供给我的东西.

我怎样才能在py2上运行?

以下是它在py3上的工作原理:

file = os.path.abspath(os.path.expanduser('a.ext1'))
directory = os.path.dirname(file)
sys.path.append(directory)
fullname = 'my.name.space.a'
loader = importlib.machinery.SourceFileLoader(fullname = fullname, 
                                              path = file)
x = loader.load_module()
Run Code Online (Sandbox Code Playgroud)

现在x正是我想要的,a.ext1文件,而不是.py

知道如何让这个为py2工作吗?

(顺便说一句,我已经阅读了关于Stack溢出这个主题的所有内容,但从来没有.py也存在的情况)

python python-import python-2.7 python-3.x

5
推荐指数
1
解决办法
205
查看次数