是否有可能從python(2.7)中派生類的靜態成員初始化基類的靜態成員?python靜態成員初始化從派生類的靜態成員值
也就是說,假設我有一堆的映射存儲在一個簡單的數據庫實體類:以下所有實體有一個名爲id字段規則
class EntityA(EntityBase):
entityName = 'EntA' # the name of the entity in the DB
...
class EntityB(EntityBase):
entityName = 'EntB' # the name of the entity in the DB
...
,並假設數據庫建立'id_ 實體名稱'。因此,'id_EntA'和'id_EntB'分別是EntityA和EntityB的數據庫中id字段的名稱。
現在,我想從(抽象)基類(EntityBase)只有一次產生這兩個名字,但我不能找到一個方法來做到這一點...
我想寫類似:
class EntityBase:
idFieldName = 'id_' + *derived-class*.entityName
...
我知道我可以寫一個簡單的函數,返回連接字符串,但我想這不是我每次調用該函數的時間進行評估。這應該是可能的,因爲構建idFieldName
值所需的所有信息都存儲在靜態變量中。
但是'idFieldName'是'entityBase'的一個* static *成員** ** –
如果你想鉤入類的創建,請查看元類。 – jonrsharpe
@Willem:是的,我只喜歡它從派生類的靜態成員的值中生成一次(在「編譯時」)......它有意義嗎? – Clonet