python类的函数中,第一个参数必须为实例对象本身,约定俗称记为self。self是实例本身,在外部调用类中的函数时,不需要给self赋值,但需要给其他的参数赋值。
与普通的函数相比,在类中定义的函数只有两点点不同:
1、第一个参数永远是 self ,并且调用时不用传递该参数。
2、在类中函数相互调用要加 self ,不加,会报错:函数未定义。
self 就是把 class 中 定义的 变量和函数 变成 实例变量和实例函数,作为类 class 的成员,使得成员间能互相调用,而不需要从外部调用 数据(即变量)和 方法(即 函数),以实现数据的封装
函数def _init_(self,name,score),用于创建实例时,将必须绑定在实例上的属性强制绑定上去。
p:类函数参数除了第一个参数必须是self且不用传参之外,其他参数使用和普通函数一样,可以使用默认参数,可变参数和关键字参数,(*args是可变参数,args接收的是一个tuple,**kw是关键字参数,kw接收的是一个dict)。
python 中一些特殊的实例变量:
1、私有变量(private),只有内部可以访问,外部不能访问,私有变量是在名称前以两个下划线开头,如:__name,其实私有变量也不是完全不能被外部访问,不能直接访问是因为python解释器对外把 __name 变量改成了 _类名__name,所仍然可以通过 _类名__name 来访问 __name .
2、在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。
3、以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”