我在同一个位置有两个文件,即' hello-depend.py'和' second-package.py'
hello-depend.py
class HelloDepend():
def depend():
print "depend"
second-package.py
from hello-depend import HelloDepend
class SecondPackage():
def second():
print "second"
h = HelloDepend()
h.depend()
if \__name__ == '\__main__':
s = SecondPackage()
s.second()
我需要从second-package.py为hello-depend.py创建对象。我用上面的方法绑。但我得到了语法错误'在导入' hello-depend'时
错误:
文件" second-package.py",第1行
import hello-depend
^
SyntaxError:语法无效
所以我尝试使用以下方法。
导入importlib
importlib.import_module(' HELLO-依赖&#39)
但我得到了" 全球名称' HelloDepend'没有定义'
请帮我解决这个问题。
注意:我需要在不更改文件名的情况下执行此操作。
答案 0 :(得分:1)
这里的问题是-
。 Python会尝试将其视为减号,而hello-depend
则不是有效的标识符。
尝试通过替换 - 使用下划线(_
)
编辑: 如果您无法更改文件名,无论原因是什么,那么您可以
execfile('hello-depend.py')
请注意,这不会导入文件,它会将所有文件全局变量放入您自己的范围内,而且他极力推荐解决此问题。