可能重复:
Python 'self' keyword
请原谅我,如果这是一个令人难以置信的noobish问题,但我从未在Python中理解过自我。它有什么作用?当我看到像
这样的东西时def example(self, args):
return self.something
他们做了什么?我想我也在某个功能中看到了args。请以简单的方式解释:P
答案 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
属性。