Python:类名?班级类型?

2024-04-19 11:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我阅读了__str__()__repr__()线程,在这里的某个地方(我不记得现在在哪里)我看到了以下代码:

def __repr__(self):
    return "<%s>" % (self.__class__.__name__)

这显然打印了类名,所以如果我有这样一个类:

Class A:
    def __repr__(self):
        return "<%s>" % (self.__class__.__name__)

它打印了一个(我不能让尖括号出现?)。如果我取出.__name__位,它会打印<__main__.A>,所以现在我有点困惑,因为肯定a是类a的类型,而不仅仅是它的名称,而且我不确定__main__位来自哪里,因为我在程序中没有__main__(还没有!-我确实知道if __name__ == "__main__"并使用它。)

那么,类名和类类型之间有什么区别呢?是否存在它们会有所不同的情况?你知道吗

另外,我想补充一下,到目前为止,我从SA学到的关于Python的几乎所有知识,即使是棘手的问题也有答案(从子类访问超类变量是我最近的一次google,SA再次排名第一!!谢谢大家!)你知道吗


Tags: 代码nameself类型returnmaindef地方
1条回答
网友
1楼 · 发布于 2024-04-19 11:20:58

您似乎在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>

在类名vs类型上,您可以引用这篇文章->;Python : terminology 'class' VS 'type'

相关问题 更多 >