來自Java的Python,我被告知工廠不是Pythonic。因此,我正在尋找
a
Python方式來做類似下面的事情。 (我簡化了我的目標,因此我不必描述我的整個程序,這非常複雜)。在Python中移動工廠
我的腳本會讀取人的姓名(以及關於他們的一些信息),並由此構建Person類型的對象。這些名字可能會重複出現,而我只想爲每個名稱指定一個Person實例。這些人也可能屬於男人和女人的分類。
這樣做的一種方法是創建一個PersonFactory,它將返回一個新實例化的男人或女人或對先前實例化的同名男人/女人的引用。另一種方法是創建一組所有Person對象,並在實例化一個新對象之前每次檢查具有給定名稱的Person的存在。雖然這兩種方法都沒有讓我感覺到Pythonic。對Python來說,第一個看起來有點麻煩(創建一個完整的類只是爲了處理另一個對象的創建?真的嗎?),第二個會很快變得昂貴,因爲我有很多名字需要處理。
檢查字典中是否存在密鑰並不是很貴,它是O(1)。 – Amber 2010-08-26 03:18:35
對,我忽略了這一點。謝謝,琥珀! – chimeracoder 2010-08-26 03:49:43
當我在這種情況下看到術語「pythonic」時,我會畏縮。 Python只是一個工具。使用該工具以您知道如何解決問題的最佳方式解決問題。如果那涉及到工廠,就這樣吧。你的客戶不關心你是否「pythonic」。 – 2010-08-26 11:41:57