python 中尖括号内描述的名称

1 投票
1 回答
760 浏览
提问于 2025-04-18 09:50

在Python解释器中,你可以这样做:

import smtplib

然后,如果你输入:

smtplib.LMTP()

你会得到类似这样的结果:

<class smtplib.LMTP at 0xsomeaddress>

问题:上面的东西一般叫什么名字?是“对象”吗?

我知道可以这样创建一个实例:

a = smtplib.LMTP()

然后 a 就被称为 smtplib.LMTP() 的一个“实例”了。

但是我上面提到的 <....> 是什么呢?

请提供引用,最好是来自 docs.python.org 的资料。

1 个回答

0

是的,两个都是对象。

在这两种情况下,你都是在创建一个LMTP类的实例。不同的是,在后者的情况下,你把这个实例的引用保存到了变量a中。当你把LMTP的实例赋值给a时,那个对象的信息<...>就不会被打印出来了。

举个例子:

>>> import smtplib
>>> smtplib.LMTP()
<smtplib.LMTP instance at 0x10e581ab8>
>>> a = smtplib.LMTP()
>>> a
<smtplib.LMTP instance at 0x10e5815a8>

在上面的例子中,第一个LMTP实例没有被引用,所以会被垃圾回收。而第二个实例被变量a引用,当它超出作用域时,也会被垃圾回收。<...>的第一部分告诉你这个对象是从哪个类创建的,第二部分则告诉你它在内存中的位置。

撰写回答