是否可以覆盖从对象派生的"__name__"? [英] Is it possible to override `__name__` derived from object?
本文介绍了是否可以覆盖从对象派生的"__name__"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
要获取类名的字符串表示形式,我们可以使用obj.__class__.__name__
,是否可以重载这些方法,以便我可以返回字符串而不是实际的类名?
To get a string representation of a class name we can use obj.__class__.__name__
is it possible to overload these methods so that I can return my string instead of the actual class name?
推荐答案
让我们尝试! (是的,这可行):
Let's try! (Yes, this works):
>>> class Foo(object):
... pass
...
>>> obj = Foo()
>>> obj.__class__.__name__ = 'Bar'
>>> obj
<__main__.Bar object at 0x7fae8ba3af90>
>>> obj.__class__
<class '__main__.Bar'>
您也可以刚刚完成Foo.__name__ = 'Bar'
,我使用obj.__class__.__name__
来与您的问题保持一致.
You could also have just done Foo.__name__ = 'Bar'
, I used obj.__class__.__name__
to be consistent with your question.
这篇关于是否可以覆盖从对象派生的"__name__"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文