我在 python 中编写了一些代码作为一个类,但现在我正在尝试将其作为包分发,但我在弄清楚不同的部分应该如何组合在一起时遇到了一些麻烦。
因此,当我最初编写代码时,我有一个包含一些函数的类,其中包括__init__
功能。我现在已将每个函数拆分为自己的文件,并以函数名称命名,但我不确定将函数放在哪里init函数,因为它需要参数。下面是一个例子。
原始格式:
class className(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def func1(self):
def func2(self, arg3):
用法为:
import name
a = name.className(arg1, arg2)
a.func1()
a.func2(arg3)
现在文件树是:
Name/
/className
__init__.py
func1.py
func2.py
并继续包括其他功能。我想保持与原来相同的基本使用模式。
现在,我的问题是__init__
函数应该去吗?在 - 的里面__init__.py
文件?别的地方?另一个问题是我想将一些导入放入__init__.py
文件;我知道他们应该进去__init__.py
文件,但我不知道它们与__init__
功能。任何帮助表示赞赏。
您不能将一个类拆分到多个文件中。一个包应该包含多个模块,这些模块是包含代码(完整的类、函数等)的文件。
The __init__.py
文件在导入包时运行(尽管很少用于实际执行大量代码)并告诉Python该目录是一个包,它不是类的构造函数。
包(文件夹)应该是包和模块的集合,而模块(文件)将是代码的集合。
正常层次结构的示例:
- somepackage (Folder)
- __init__.py (File)
- somemodule.py (File)
- SomeClass (Code)
- some_function (Code)
最后一点,我说你不能将一个类拆分到多个文件中 - 从技术上讲,你可以通过猴子修补函数到类中或其他一些类似的怪事来做到这一点,但你永远不会想要这样做,因为它会掩盖你的代码很多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)