我想設計一個包含類的組合模式。 假設我們有一堂課。正確的Python語法的建議
class Node(object):
def __init__(self,a,b):
self.a = a
self.b = b
現在我想設計一個配置模式,我想要定義像這樣或這樣的變體。
Workflow = Node(1,2) & (Node(4,2) | Node(5,6)) & Node(1,7)
其實我是想將其保存在一個文件,然後再拿起這件事,然後打破所有節點,並以相同的順序將它們用作這裏定義。 但這是語法不正確。 你能爲我推薦一些替代方案嗎? 我可以使用上面定義的相同模式嗎?
我不想使用字典和列表來保存它們,因爲它們只提供','作爲分隔符。字典也沒有排序,我將放棄定義配置或節點的順序。
'collections.OrderedDict' PRES。順序。您可以使用像['pickle']這樣的模塊(http://docs.python.org/2/library/pickle.html)將實際的python對象存儲在文件中(以字節形式)並稍後將它們加載到內存中。 –
感謝您回覆@AshwiniChaudhary 我知道OrderedDict,但我真的想要避免字典。 我的主要目標是設計或配置模式。 我想知道如果可以使用上面定義的設計,如果不能,最好的辦法是什麼。 我主要關注的是那些'&'和'|'的分隔符。 由於配置將成爲工作流的路由,其中'&'定義了必需的節點,'|'可選。 –
@HardikJuneja我喜歡你嘗試爲此製作DSL的方法,但是在使用'&'和'|'之前,你可能想再想一想,代表必需和可選。重載操作員時,應始終嘗試並確保行爲直觀。這兩個操作符的含義在程序員中是根深蒂固的,意思是「和」和「或者」,如果他們被重新定義爲「需要」和「可選」,則可能會混淆人。 – robjohncox