我正在尝试迭代<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。
答案 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