合成特性

我正在尝试提出解决方案以将合成属性添加到
Python,类似于Objective-C中的合成特性.
我正在用元素进行游戏.我可以动态
创建将支持该属性的属性,但是我有
难以弄清楚如何动态生成get/设置方法
传递到内置属性()函数.
是否可以定义lambda或可呼叫的对象
作为getter方法(或setter,占据价值参数)
metaclass .__ init__?我猜测的困难部分是获得最新
实例传递到getter.这是我的第一次尝试
元类和动态功能/方法,因此任何指针都是极大的
感谢.
objectivepythonobject(类型):
def __new __(CLS,名称,基础,DCT):
#print"为班级分配内存",名称
返回类型.__新__(CLS,名称,基础,DCT)
def __init __(CLS,名称,基础,DCT):
#print"初始化类",名称
对于Cls.Synthise的PropertyInfo:
属性= PropertyInfo [0]
DefaultValue = PropertyInfo [1]
打印属性
setAttr(cls,'_' +属性,defaultValue)
#用get/set方法创建属性...
班级人(对象):
__ metaClass__ = objectivepythonobject
合成= [('名称','bobc'),
('age','48')]
def __init __(自我):
打印self._name
打印self._age
谢谢,
Rowland

# 回答1

roxhyde***@river2sea.org schrieb:
你为什么要这样做?原因合成属性
OBJC中存在仅仅是为了公开键值编码的属性,
一个人需要getter/setter.但主要是样板,所以苹果
介绍了 @综合通量.
但是在Python中,您不需要.您使用简单的属性.在里面
您需要附加逻辑,请使用内置属性进行逻辑.
diez

标签: python

添加新评论