假設我正在KV數據存儲中創建表示和對象的類。創建構造非常簡單...從類方法構造
class KVObject:
def __init__(self, key, value, add=True):
self.key = key
self.value = value
if add == True:
kv_create(key, value)
現在,讓我們說,我想檢索KV-對象...並從中構建一個類的實例。我想我會將這個類方法添加到我的DataBaseObject類。
@classmethod
def get_kv_object(cls, key):
value = kv_get(key)
cls.__init__(key, value, add=False)
...但是從類方法調用初始化當(CLS .__ init__),Python的請求參數的自我!
任何想法?非常感謝!我知道這是一個簡單的例子,但它絕對適用於一些更復雜,有趣的情況!
編輯:感謝您的回覆。在研究這件事時,我學到了一些有用的東西,就是那個對象.__ new__在調用MyClass(...)時調用對象的__init__,有效地向MyClass提供一個未初始化的類實例。 init與從MyClass中調用的參數。同樣,按照答案中的建議,調用cls(...)也是有意義的。謝謝。