python面向对象编程
具有封装、继承、多态的特性;
继承:子类定义了自己的–init–方法的时候,务必要先显示调用父类的–init–方法,否则父类会初始化失败
面向过程就是一件事的先后顺序来的
面向对象:将一件事情想象为一个对象,然后提取对该对象的所有的共同的方法和属性,利用方法和属性完成这件事情的假想;
类:具有相同属性和方法的总称
对象:类的实例叫做对象
self的作用:主要是在定义实例函数表明当前是一个实例方法,只能由类的实例来调用
self在定义方法时必须以第一个参数的形式定义到实例方法中,调用时不需要写
类方法:和具体的某个实例没有关系的方法,一般定义为类方法,类名直接调用;而和具体的实例有关的时候,每个实例有不同的方法,一般用实例方法,用实例来访问。
几种特殊的方法
类方法:使用@classmethod来进行修饰,可以由类直接访问,也可以由实例来访问,第一个参数必须是cls,实例的权限高于类的权限。
实例方法:只能由该类的实例,也就是对象来调用,第一个参数总是self,调用时由python自动传入当前调用该方法
属性方法:可以向属性一样调用方法,目的是防止直接对属性进行修改,前面要加@property
@property #面积就不可以被修改了 def area(self): return self.width * self.height
类属性:就是在类方法中的属性值,类中的所以方法都可以调用,也可以用类名调用
实例属性:和实例对象一样,只能由对象来调用
关于if_name=’main_’:语句的作用 (面试容易遇到)
–name–属性是每一个py文件的内置属性,当直接被执行-name–的时候。会打印出–mian–属性。
当时被导入的时候,打印出来的就会是文件名(路径)。我们利用这个特性来判断文件的执行方式,从而执行特定的代码(比如调试的代码)。