## page was renamed from zhArticleTemplate ##language:zh #pragma section-numbers on 返回::'''[[self:PyIAQ|Python 罕见问题集]]''' ::-- ZoomQuiet [<>] <> = 问:创建对象很爽,但是如何更新? = ''Q: That's great for creating objects; How about for updating?'' 字典对象已经升级,现在可使用 `d.update(Dict(a=100, b=200))` 来更新字典; 但是其它对象还没有对应的处理,所以你得自个儿来: `obj.a = 100; obj.b = 200` 当然也可以定义函式来进行更新,比如说: Well, dictionaries have an update method, so you could do d.update(Dict(a=100, b=200)) when d is a dictionary. There is no corresponding method for objects, so you have to do obj.a = 100; obj.b = 200. Or you could define one function to let you do update(x, a=100, b=200) when x is either a dictionary or an object: {{{#!python import types def update(x, **entries): if type(x) == types.DictType: x.update(entries) else: x.__dict__.update(entries) return x }}} This is especially nice for constructors: 同位素版本:) {{{#!python def __init__(self, a, b, c, d=42, e=None, f=()): update(self, a=a, b=b, c=c, d=d, e=e, f=f) }}}