在 python 中,我们都知道有一般的object
类型,其中每个类自然是继承人。
如果我们在控制台中输入object
,则返回type <'object'>
。
>>> object
<type 'object'>
到目前为止,这么好。
也可以实例化object
>>> var = object()
>>> var
<object object at 0x021684D8>
我的问题是:
object
类型是否可以实例化?这有什么用吗?或者它只是为了形式而制作的?
答案 0 :(得分:3)
至少有一个实际的理由来实例化object
:这是一种快速,简单和惯用的方式来获得一个不会与任何其他值相比的值(并且会引发一个例外订购比较)。这使它成为一个完美的哨兵。例如:
last = object()
for value in iterable:
if value != last:
yield value
last = value
如果您使用None
作为标记值,如果iterable
以None
开头,则会出错,但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'>
这告诉了那是什么类型的对象。