从外部设置任意属性适用于普通类,但不适用于内部对象,如字符串?!如何检查是否允许设置任意属性?
答案 0 :(得分:2)
使用try-except
def canSetAttr(o):
try:
name = 'probablynotset'
flag = hasattr(o, name)
if flag:
old = getattr(o, name)
setattr(o, name, 'x')
if flag:
setattr(o, name, old)
else:
delattr(o, name)
return True
except AttributeError:
return False