1、self
当实例方法被调用时,对象会将自身self作为第一个参数传入。所以在定义时需要将self写入,在调用时不用写。
2、公有、私有
Python的属性和方法默认都是公有的,可以通过 . 访问到,
通过在属性名前可以加上双下划线可以将其伪私有化,这样只能通过类的方法来访问了,为什么是伪呢,因为Python 利用叫name mangling的方式在类内部把这些变量的名字改了,在外部通过__类名__属性名访问到。
3、类属性、静态属性、实例属性、类方法、静态方法、实例方法
类对象对应类名,实例对象就是通过类创建的对象。
类属性:也称作静态属性,在构造方法外定义,类和实例公有,访问方法可以直接通过 . 取到,通过三个方法也均可以访问到。但是通过实例方法不能修改类属性,在实例方法中,若绑定了self则成为实例的属性,强行覆盖了类属性,此后也不能通过实例访问到改类属性了;如果不绑定就成为临时变量没有意义。
实例属性:实例对象独有,构造方法内添加或创建对象后利用 . 添加。若与类属性同名,覆盖之。
实例方法:传入参数self,可以通过实例调用,也可以通过类名调用,但要将明确的实例作为第一个参数传入。
类方法:@classmethod 且必须传入参数cls。
静态方法:@staticmethod,不用传入参数。
类方法和静态方法均可以修改类属性,二者都可以通过类名或实例调用。
类和对象的一切属性和方法均在以上类型,自动归类。