0

我正在编写一个供内部使用的小包并遇到设计问题。我在某个文件中定义了一些类和常量(即服务器 IP 地址),我们称之为 mathfunc.py。现在,其中一些类和常量将在同一个包中的其他文件中使用。我目前的设置是这样的:

/mypackage
   __init__.py
   mathfunc.py
   datefunc.py

所以,目前我认为我必须在 datefunc.py 中导入 mathfunc.py 才能使用那里定义的类(或者一直导入它们)。这对我来说听起来不对,因为那样我会很痛苦地到处导入大量文件。这是一个适当的设计还是有其他方式?也许我可以将所有定义放在某个文件中,该文件本身不会是子包,但会被所有其他文件使用?

4

1 回答 1

0

不,这就是 Python 的工作原理。如果要使用在另一个文件中声明的对象,则必须从中导入。

提示:

  • 你可以通过只 ing 你需要的东西来保持你的命名空间干净import,而不是使用from foo import *.
  • 如果您确实需要执行“循环导入”(其中 A 需要 B 中的东西,而 B 需要 A 中的东西),您可以通过仅在需要对象的函数内部而不是文件顶部导入来解决这个问题。
于 2013-10-30T23:39:01.053 回答