我正在按以下方式构造程序:
program/
base/
__init__.py
module1.py
module2.py
...
app1/
__init__.py
module11.py
module12.py
...
app2/
__init__.py
module21.py
module22.py
...
...
包base
的{{1}}用于公开__init__.py
和app1
共同要求的最小对象集,如下所示:
app2
现在,我了解到,当程序实现一个类并执行该程序时,解释器将调用该类的# __init__ file
from module1 import rock, paper
from module2 import scissor
...
方法(如果存在),然后调用__new__
方法。
我的问题是:模块是否可以实现与类的__init__
方法相同的__new__.py
文件?就我的程序而言,我将使用这样的文件来动态更改__new__
,rock
或paper
的状态。
答案 0 :(得分:3)
不,他们不能。 specification of the import system声明该语言仅以特殊方式使用__init__.py
。您放入文件夹中的任何其他文件都只是常规文件。
对象创建过程中与__init__
方法的相似之处仅限于名称。