When where and how can i change the __class__ attr of an object?

前端 未结 4 1591
-上瘾入骨i
-上瘾入骨i 2020-12-16 13:53

I\'d like to be able to do:

>>> class a(str):
...     pass
...
>>> b = a()
>>> b.__class__ = str
Traceback (most recent call last)         


        
4条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-16 14:13

    Only classes that were defined with a class keyword could be used for __class__ attribute assignment:

    >>> class C:
        pass
    
    >>> class D:
        pass
    
    >>> C().__class__ = D
    >>>
    

提交回复
热议问题