Python:类名?班级类型?

时间:2016-03-29 17:56:08

标签: python class types repr

我读了__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是再次排名第一!谢谢大家!)

1 个答案:

答案 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'