我读了__str__()
vs __repr__()
个帖子,而且,在这里的某个地方(我现在不能记住)我看到了以下代码:
def __repr__(self):
return "<%s>" % (self.__class__.__name__)
这显然打印了类名,所以如果我有这样的类:
Class A:
def __repr__(self):
return "<%s>" % (self.__class__.__name__)
打印A(我不能出现尖括号?)。如果我取出.__name__
位,它会打印<__main__.A>
所以现在我有点困惑,因为A肯定是A类的类型,而不仅仅是它的名字,我不确定{ {1}}位来自于我在程序中没有__main__
(但是! - 我确实知道__main__
并使用它。)
那么Class name和Class类型之间的区别是什么?是否存在不同的情况?
另外,我只想添加几乎所有关于Python的知识我到目前为止从SA学到了什么,即使是棘手的问题也有答案(从子类访问超类类变量是我最近的google,而SA是再次排名第一!谢谢大家!)
答案 0 :(得分:0)
您似乎在python解释器shell中运行代码。在这种情况下,__main__
来自shell。
示例代码:
>>> class A:
... def __repr__(self):
... return "<%s>" % (self.__class__.__name__)
...
>>> A()
<A>
>>> class A:
... def __repr__(self):
... return "<%s>" % (self.__class__)
...
...
>>> A()
<__main__.A>
在班级名称与类型上,您可以参考这篇文章 - &gt; Python : terminology 'class' VS 'type'