假设我有以下目录结构:
lib\
--__init__.py
--foo.py
--bar.py
Run Code Online (Sandbox Code Playgroud)
在foo和bar里面,有两种方法都需要相同的方法.例如:
FOO:
def method1():
win()
Run Code Online (Sandbox Code Playgroud)
酒吧:
def method2(number):
if number < 0:
lose()
else:
win()
Run Code Online (Sandbox Code Playgroud)
init:
def win():
print "You Win!"
def lose():
print "You Lose...."
Run Code Online (Sandbox Code Playgroud)
有没有办法在模块各自的子文件中使用init .py中的win和lose方法,或者我是否必须在文件夹中创建另一个文件并将foo和bar导入?
是的,只需导入__init__.py模块(通过绝对或相对导入,它并不重要).
我从不喜欢相对导入,所以我用import mypackagein进行mypackage.foo,导入__init__.py就像相对导入一样,然后在那里使用它.我也不喜欢把任何东西__init__.py放进去,所以也许你应该考虑共享的公共文件.
| 归档时间: |
|
| 查看次数: |
9262 次 |
| 最近记录: |