python 中尖括号内描述的名称
在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引用,当它超出作用域时,也会被垃圾回收。<...>的第一部分告诉你这个对象是从哪个类创建的,第二部分则告诉你它在内存中的位置。