是否可以覆盖从对象派生的"__name__"? [英] Is it possible to override `__name__` derived from object?

查看:84
本文介绍了是否可以覆盖从对象派生的"__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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆