使用object <type'object'=“”>

时间:2015-04-28 21:21:17

标签: python python-2.7 object

python 中,我们都知道有一般的object类型,其中每个类自然是继承人。

如果我们在控制台中输入object,则返回type <'object'>

>>> object
<type 'object'>

到目前为止,这么好。 也可以实例化object

类型的变量
>>> var = object()
>>> var
<object object at 0x021684D8>

我的问题是:

object类型是否可以实例化?这有什么用吗?或者它只是为了形式而制作的?

2 个答案:

答案 0 :(得分:3)

至少有一个实际的理由来实例化object:这是一种快速,简单和惯用的方式来获得一个不会与任何其他值相比的值(并且会引发一个例外订购比较)。这使它成为一个完美的哨兵。例如:

last = object()
for value in iterable:
    if value != last:
        yield value
        last = value

如果您使用None作为标记值,​​如果iterableNone开头,则会出错,但iterable无法从品牌开始你刚刚创建的新object实例。

但是,即使object个实例没有实际用途,请考虑object的子类的每个实例都是object,因此从概念上讲,您正在创建object 1}}实例始终 - 实际上,如果您正在设计一个在其super()__init__中使用__new__的子类,那么这不再仅仅是概念性的。如果object.__init__不可用或已被提升,则必须为任何协作类层次结构创建一个新的无操作根类,只是为了实现无操作基础实现。

答案 1 :(得分:0)

试试吧

 class a:
    def __init__(self):
        self.num=0
class b:
    def __init__(self):
        self.num=1
A=a()
B=b()
type(A)
type(B)

它将返回它:

<class '__main__.a'>
<class '__main__.b'>

这告诉了那是什么类型的对象。