迭代并更改py3中类常量的值

时间:2018-03-04 06:41:09

标签: python python-3.x class

我正在尝试迭代<script> $('.datepicker').datepicker({ format: 'dd/mm/yyyy', startDate: '+3d' }); </script> 并更改其常量。我的工作代码适用于python 2,但不适用于python 3。这是在py2中运行的代码:

class.__dict__

使用此代码独立是py3 throws class SOMECLASS: a = 'Something' b = 'Something else' change = vars(SOMECLASS) for k, v in change.items(): if not '__' in k: change[k] = 'some_new_value' 。为了绕过这个,我对代码做了这个改动:

TypeError: 'mappingproxy' object does not support item assignment

但这不起作用,因为当循环停止时,change = dict(vars(rng.JSCSS)) 将恢复其原始值。谷歌搜索,change功能不断出现,但这不适用于我想要完成的任务。

我实际上正在转换我的原始代码,这对于py3也适用于py3。

1 个答案:

答案 0 :(得分:3)

setattr适用于此处,您可以使用它来更改类的属性:

class SOMECLASS:
    a = 4
    b = 4

change = vars(SOMECLASS)


for i in change:
    if not '__' in i:
        setattr(SOMECLASS, i, 5)

x = SOMECLASS()
print(x.a)

输出:

5
相关问题