2012-10-23 177 views
1

是否object关键字有什么用途除了像类:分配变量对象蟒蛇

class HelloWorld(object): 
    pass 

由于分配变量时object看来,如果没有使用它(无variable.__dict__或任何东西) 。

例如:

x=object() 
x.anything="foo"#<----- throws an error 
+1

只是为了澄清,它不是一个关键字,而是一个基类 - 几乎就像一个接口,所有对象都隐式地继承。 –

+1

在这里解释,http://stackoverflow.com/questions/4015417/python-class-inherits-object – specialscope

回答

3

一个可能的用途是用于定点值 - 要具有可并非偶然被复制的独特价值的东西。例如:

NOT_SET = object() 

def some_function(arg=NOT_SET): 
    if arg is NOT_SET: 
     # the user didn't pass in a value for 'arg' 
    else: 
     # the user passed in a value for 'arg' 

因为每一个对象实例都有一个唯一的身份,if语句的情况只会如果用户没有在一个值传递(不像常见的默认值参数,None,是真的,用户可能会传入一些函数)。

+0

+1,这是一个很好的窍门。 – nneonneo