所以有一个名为Field
的类,它有类属性_slots
,这个属性是字典。
所以它看起来像这样(该类也使用自定义__metaclass__
):
class Field(object):
_slots = {
'key1': False,
'key2': None,
...
}
课程内容太大,无法在此处粘贴,因此我提供了指向该内容的链接,src
现在我需要在实例化这个类时,它将在该属性中包含我的自定义键/值对。
所以我尝试了这个(在我自己的模块中):
from openerp import fields
fields.Field._slots['custom_key'] = None
当我在此作业后打印时,它会显示我已设置此键/值对,但实际上在加载该类时,它永远不会得到我的custom_key
。虽然如果我修补一些方法,它可以工作,但对于类属性它没有。是否有可能这样做(或者我在这里做错了什么?)?
虽然如果我用自己的简单类编写简单的测试场景,例如:
(f.py档案)
class F(object):
_t = {'a': 1}
(其他python文件)
import f
f.F._t['b'] = 10
f_new = f.F()
print f_new._t
然后这个工作。
更新
我还在MetaField
类中尝试了这个(直接修改代码),__metaclass
用作Field
的{{1}}(当Field
类使用{{1}时仍被忽略}}:
_slots