如何避免在将_init__;.py拆分为多个文件时循环导入

2024-04-29 10:43:03 发布

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

假设我从模块中一个丑陋的__init__.py文件开始:

def a():
  print("this is awesome")

def b():
  print("An opinion:")
  a()

b()

函数ab很酷,但我想让它们移到单独的文件中。在中仍然可以从模块根目录访问模块使用者。我该怎么办

我期待着类似的事情:

### __init__.py
from a import a
from b import b

b()
### a.py
def a():
  print("this is awesome")
### b.py
import a
def b():
  print("An opinion:")
  a.a()
### client code

import awesome_module

awesome_module.a()
awesome_module.b()

这将导致init文件上的No module named 'a'。我该怎么做?但更重要的是,我从哪里学到更多关于这些东西的知识

更新:如果我想在__init__.py中调用b(),但无法通过模块导入将b()提供给最终用户,我该怎么办


Tags: 模块文件函数frompyimportaninit