尖括号中描述的python名称

时间:2014-06-15 09:37:39

标签: python

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

import smtplib

然后,如果要输入:

smtplib.LMTP()

一个会得到类似的东西:

<class smtplib.LMTP at 0xsomeaddress>

问题:以上的通用名称是什么? 它是一个&#34;对象&#34;?

我知道可以像这样实例化:

a = smtplib.LMTP()

a将被称为&#34;实例&#34; smtplib.LMTP()

但是上面示例中的<....>是什么?

请引证(最好来自docs.python.org)

1 个答案:

答案 0 :(得分:0)

是的,两者都是对象。

在这两种情况下,您都要实例化LMTP类。不同之处在于,在后一种情况下,您可以省略对它的引用(a)。将LMTP实例分配给a时,对象信息&lt; ...&gt;只是不打印。

举例说明:

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

在上述情况下,LMTP的第一个实例没有引用,将被垃圾回收。第二个实例由a引用,并在离开作用域时进行垃圾回收。 &lt; ...&gt;的第一部分告诉你从哪个类实例化对象,第二部分告诉你在内存中的位置。