Skip to main content
 首页 » 编程设计

python之__repr__ 方法中的 self 和 object 参数有什么区别

2025年05月04日11lovecherry

我已经知道旧式类 (class Foo()...) 和新式类 (class Foo(object)...) 之间的区别。但是,这之间有什么区别:

class Foo(object): 
  def __repr__(self): 
    return 'foo' 

和

class Foo(object): 
  def __repr__(object): 
    return 'foo' 

谢谢。

请您参考如下方法:

不同之处在于,在一种情况下,您将保存实例的变量称为 self,而在另一种情况下,您将其称为 object。这是唯一的区别。

self 变量在 Python 中是显式的,您可以随意调用它。 self 只是每个人为了提高可读性而使用的约定。

例如,这工作得很好:

>>> class Foo(object): 
...   def __init__(bippity, colour): 
...     bippity.colour = colour 
...   def get_colour(_): 
...     return _.colour 
...  
>>> f = Foo('Blue') 
>>> f.get_colour() 
'Blue' 

但它非常令人困惑。 :)