python - 如何检查是否可以在 Python 对象中设置(修补)属性

标签 python monkeypatching

从外部设置任意属性适用于普通类,但不适用于字符串等内部对象?!如何检查是否允许我设置任意属性?

最佳答案

使用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

关于python - 如何检查是否可以在 Python 对象中设置(修补)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9723160/

相关文章:

python - 如何在Python中获得立方根

python - 将字符串放在 64 个字符后的新行中

python - pyspark 性能与纯 python 做简单求和

javascript - 我如何猴子修补对象的构造函数?

python - 如何用monkeypatch替换常量

ruby - Ruby 运算符可以别名吗?

python - gevent 库 : "Import Error: no module named greenlet"

python - 如何过滤元组中的第二个元素?

delphi - Delphi Win64 中的 Monkey 修补方法(函数)

python - Monkeypatching 不进行类导入