赞
踩
参考:
https://turingplanet.org/2019/09/21/%e7%b1%bb-class/#lei_he_shi_li_Class_Instance
书《深度学习之Pytorch实战计算机视觉》
类是用来描述具有相同属性和方法的对象的集合,定义了该集合中每个对象所共有的属性和方法,对象则是类的实例;
每个类都有自己的属性(attribute)(如:一个人的身高、体重、年龄)和方法(method)(如:吃饭、说话、刷牙)
注意:class
(类)的外部函数叫做函数function,类的内部函数叫做方法method;
说明:
Python中使用class
关键词来创建“类”,在class
关键词之后紧接着类的名称,名称首字母推荐大写,以冒号 :结尾,换行缩进后紧跟“属性”和“方法”的定义,属性就是一个变量的定义,而方法的定义和函数的定义是一样的,也是以def
开头;
在类的创建过程中需要注意的如下事项:
__init__()
:是类的初始化方法,我们在创建一个类的实例时 就会调用一次这个方法。self
:代表类的实例,在定义类的方法时是必须要有的,但是在调用时不必传入参数。演示:
类的定义是一个具体实例(instance)的设计蓝图,在创建实例的时候,我们只要调用类名,然后加括号就可以了。在方法——greet
中,我们使用了特殊参数self,它永远指向创建的实例本身,所以self.name
就会指向当前被创建实例的name
属性。p1.greet()是方法调用的示范,我们只要在实例名后加上句号(.)紧跟着方法名,即可调用实例的方法。
修改:
我们也可以在创建实例之后,对其属性和方法进行修改:
# 修改对象属性值 p1.age = 40 # 删除对象属性值 del p1.age # 删除对象 del p1
演示:
1、修改对象属性值
2、删除对象属性值
初始化:
__init__
是 Python 中的特殊“方法”(special method),它用于初始化对象;
创建实例时它是最先被调用的函数,并且每次创建实例,它的__init__
都会被调用,而且它的第一个参数永远是 self
,指向创建的实例本身。(init是initial的简写,顾名思义就是用来初始化的)
演示:
也可以在__init__
方法中添加其他参数,这样我们的的初始化能更加灵活和方便,同时在创建实例的时候,需要传入与__init__
方法匹配的参数:(下面例子中从S1
到S2
就是初始化的过程)
说明:
可以将继承理解为:在面向对象编程中,已经创建了一个类,又想再创建一个与之相似的新的类(比如添加几个方法,或者修改原来的方法;这时不必从头开始,可从原来的类派生出一个新的类,即新的类继承了原来的类),通过继承,新的类获得另一个类的所有方法,被继承的类叫作父类,进行继承的类叫作子类,子类继承了父类的所有数据和方法。(颜色相同,属性相同)
这样可以有效解决代码重用问题。
需要注意:(这里没太看明白)
演示:
父类演示:
加入子类:
下面是第二种程序方法,供参考:
定义父类:
加入子类:
说明:
多态是指对不同类型的参数进行相同的操作,根据对象(或类)类型的不同而表现出不同的行为;
继承可以拿到父类的所有数据和方法,子类可以重写父类的方法,也可以新增自己特有的方法(有了继承,才有了多态,这样才能实现为不同的数据类型的实体提供统一的接口)。
演示:
在继承一个类之后,父类中的很多方法或许就不能满足我们现有的需求了,这时就要对类进行重写;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。