在python包中设置类和常量的正确方法

时间:2013-10-30 23:35:22

标签: python package

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

/mypackage
   __init__.py
   mathfunc.py
   datefunc.py

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

1 个答案:

答案 0 :(得分:0)

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

提示:

  • 您只需import所需内容,而不是使用from foo import *,即可让您的名称空间保持清洁。
  • 如果你真的需要做一个“循环导入”(其中A需要B中的东西,而B需要A中的东西)你可以通过只导入你需要对象的函数内部而不是顶部来解决这个问题。一个文件。