我正在用Python2.7制作一个包,旨在以有限的容量替换PyCLIPS
该软件包使用顶级功能,因此可以更直接地访问CLIPS专家系统。运行from clips import *
意味着像Assert()
这样的函数将在专家系统中断言一个事实,可以从顶层使用
我需要重新创建它,这样我就可以在一些遗留代码中简单地用from PyCLIPS2 import *
替换from clips import *
,希望不会改变任何其他内容
目前我的包的结构如下:
PyCLIPS2
├── __init__.py [1]
├── system
| ├── __init__.py [2]
| └── main.py
└── tests
├── __init__.py [3]
└── test_all.py
在__init__.py [1]
的内部,我目前拥有
from system import *
_main_object = Main()
def Assert(assertion):
return _main_object.Facts.Assert(assertion)
这让我可以做我想做的事。这意味着当我导入包时,它将初始化Main()
的一个实例,并将顶级函数绑定到包中的相关函数/方法
问题是,这些函数/方法有很多。如果我继续这样做,我将不得不在__init__.py
中为我希望顶级访问的每个函数或方法编写其中一个函数。如果有任何变化,我也必须保持更新
我相信有一种更好的方法可以做到这一点,希望不需要我编写并维护这些函数。如果有人对从顶层访问这些函数有任何建议,这些建议更具python风格,或者导致更清晰的名称空间,或者只是不那么可怕,我真的很想听听:)(或者,可以为我编写这些函数的东西也会帮上很大的忙)谢谢
目前没有回答
相关问题 更多 >
编程相关推荐