__repr__方法中self和object参数之间有什么区别?

San*_*nda 1 python

我已经知道旧式类(类Foo()...)和新式类(类Foo(对象)...)之间的区别.但是,它之间有什么区别:

class Foo(object):
  def __repr__(self):
    return 'foo'
Run Code Online (Sandbox Code Playgroud)

class Foo(object):
  def __repr__(object):
    return 'foo'
Run Code Online (Sandbox Code Playgroud)

谢谢.

Len*_*bro 7

不同之处在于,在一种情况下,您调用了保存实例的变量,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'
Run Code Online (Sandbox Code Playgroud)

但这真令人困惑.:)