自我做什么?

时间:2011-07-14 18:17:58

标签: python self args

  

可能重复:
  Python 'self' keyword

请原谅我,如果这是一个令人难以置信的noobish问题,但我从未在Python中理解过自我。它有什么作用?当我看到像

这样的东西时
def example(self, args):
    return self.something
他们做了什么?我想我也在某个功能中看到了args。请以简单的方式解释:P

3 个答案:

答案 0 :(得分:12)

听起来你偶然发现了Python的面向对象特性。

self是对象的引用。它与许多C风格语言中this的概念非常接近。看看这段代码:

class Car(object):

  def __init__(self, make):

      # Set the user-defined 'make' property on the self object 
      self.make = make

      # Set the 'horn' property on the 'self' object to 'BEEEEEP'
      self.horn = 'BEEEEEP'

  def honk(self):

      # Now we can make some noise!
      print self.horn

# Create a new object of type Car, and attach it to the name `lambo`. 
# `lambo` in the code below refers to the exact same object as 'self' in the code above.

lambo = Car('Lamborghini')
print lambo.make
lambo.honk()

答案 1 :(得分:5)

self是对该方法(本例中为example函数)所属的类实例的引用。

您需要查看Python docs on the class system以获取Python类系统的完整介绍。您还需要查看these answers to other questions about the subject on Stackoverflow

答案 2 :(得分:3)

自我它是对当前类的实例的引用。在您的示例中,self.something引用something类对象的example属性。