lambda 配合property的使用技巧
如果在一个类中,想封装property属性,在调用的时候才执行
class MyOjbect(object):
def __init__(self):
self.fight_attrs()
def fight_attrs(self):
"""
@des: 动态设置带默认参数的property
"""
keys = ['sm','fy','gj']
for key in keys:
setattr(self.__class__, key, property(lambda self, x=key:self.getFightAttr(x)))
def getFightAttr(self, key):
return key