在modu中使用在初始化py中定义的方法

2024-04-28 12:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下目录结构:

lib\
--__init__.py
--foo.py
--bar.py

在foo和bar中,有两个独立的方法都需要相同的方法。例如:

福:

def method1():
    win()

酒吧:

def method2(number):
    if number < 0:
        lose()
    else:
        win()

初始化:

def win():
    print "You Win!"

def lose():
    print "You Lose...."

有没有办法在模块各自的子文件中的init.py中使用win和lose方法,或者我必须在文件夹中创建另一个文件并让foo和bar导入它?


Tags: 文件方法py目录younumberfooinit
2条回答

使用相对导入:

from . import win, lose

是的,只需导入__init__.py模块(通过绝对或相对导入,这并不重要)。

我从不喜欢相对导入,所以我会在mypackage.foo中使用import mypackage,它像相对导入一样导入__init__.py,然后在那里使用它。我也不喜欢在__init__.py中放入任何内容,所以也许您无论如何都应该考虑共享的公共文件。

相关问题 更多 >