是否有可能从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