类变量与实例变量
类变量:在类中定义的变量
实例变量:在构造函数中定义的变量
类变量的访问
- 类名.类变量名
- 实例名.__class__.类变量名
对象的实例变量访问原则
首先查看该对象是否具有该变量,如果不存在,就去该对象类中的类变量中找,最后去父类的类变量寻找。
构造函数误区
class Student():
name = '777'
def __init__(self, name1, age):
print(name)
上述代码中,如果创建一个对象实例,就会报错。
student = Student('777', 18)
原因就在于如果在构造函数中直接用变量名访问,默认访问的是构造函数形参的变量
构造函数 def __init__(self, name1, age): 中并没有 name 的形参,所以就报错了
类名调用实例方法
类名调用实例方法 self 参数需要手动传入,不同于对象调用实例方法,程序本身会将对象传入self形参中