面向对象编程 面向对象编程 是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对 象都有的通用行为。基于类创建对象 对象 时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重载:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重载。
实例变量:定义在方法中的变量,只作用于当前实例的类。
继承:即 一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是 模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化:创建一个类的实例,类的具体对象。
方法:类中定义的函数。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法
定义类以及对象
class Dog():#Dog是类名
#方法
def print_run(self):
print('run')
def print_eat(slef):
print('eat')
hsq = Dog()#对象
init()方法
此方法是一个特殊方法,每当根据Dog类创建实例时它都会自动运行。
str()方法
当使用print输出对象的时候,只要自己定义了str(self)方法,那么就会打印从在这个方法中return的数据
del()方法
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为del()方法,del 程序结束后自动会调用
new(cls)方法
- new至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供
- new必须要有返回值,返回实例化出来的实例,这点在自己实现new时要特别注意,可以return父类new出来的实例,或者直接是object的new出来的实例
- init有一个参数self,就是这个new返回的实例,init在new的基础上可以完成一些其它初始化的动作,init不需要返回值
- 我们可以将类比作制造商,new方法就是前期的原材料购买环节,init方法就是在有原材料的基础上,加工,初始化商品环节