首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
self指的是类实例对象本身(注意:不是类本身),就是传过来的那个参数,而不是类。
由于类起到模板的作用,因此,可以在创建实例的时候,把我们认为必须绑定的属性强制填写进去。这里就用到Python当中的一个内置方法__init__方法,例如在Student类时,把name、score等属性绑上去:
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
class Student(object):
...
def get_name(self):
return self.__name
def get_score(self):
return self.__score
class Student(obiect):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print "%s: %s" % (self.name, self.score)
(1)、__init__方法的第一参数永远是self,表示创建的类实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
(2)、和普通数相比,在类中定义函数只有一点不同,就是第一参数永远是类的本身实例变量self,并且调用时不用传递该参数。除此之外,类的方法(函数)和普通函数没啥区别。
参考:https://blog.csdn.net/CLHugh/article/details/75000104
https://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html