700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python动态创建对象属性_python – 动态创建类属性

python动态创建对象属性_python – 动态创建类属性

时间:2019-10-07 09:34:46

相关推荐

python动态创建对象属性_python  – 动态创建类属性

你可以在没有使用装饰器的元类的情况下完成它.这种方式有点清楚IMO:

def apply_defaults(cls):

defaults = {

'default_value1':True,

'default_value2':True,

'default_value3':True,

}

for name, value in defaults.items():

setattr(cls, name, some_complex_init_function(value, ...))

return cls

@apply_defaults

class Settings(object):

pass

在Python 2.6之前,类装饰器不可用.所以你可以写:

class Settings(object):

pass

Settings = apply_defaults(Settings)

在旧版本的python中.

在提供的示例中,apply_defaults是可重用的……好吧,除了默认值在装饰器的主体中是硬编码的:)如果您只有一个案例,您甚至可以将代码简化为:

defaults = {

'default_value1':True,

'default_value2':True,

'default_value3':True,

}

class Settings(object):

"""Your implementation goes here as usual"""

for name, value in defaults.items():

setattr(Settings, name, some_complex_init_function(value, ...))

这是可能的,因为类(在类型意义上)是Python中的对象本身.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。