Python从入门到放弃(五):类细讲
来源:互联网 发布:就业培训数据库 编辑:程序博客网 时间:2024/05/21 10:40
Ⅰ.入门
一:编写基础
1.类与实例(他们在python中都是对象)
- 1
- 2
- 3
- 4
2.最基本建立过程
语法模板:
- 1
- 2
- 3
- 4
- 5
例1:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
例2:
- 1
- 2
- 3
- 4
3.类继承
前面是类和实例之间的关系,那么这里就是类和子类之间的关系.
自然界是层次的,那么类之间也能够是层次的.在较低的层次重写一些属性,实现特殊需要的子类.
实例从类中继承,而子类继承于超类.
继承语法模板:
- 1
- 2
- 3
- 4
- 5
例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
4.运算符重载初步
例子:
- 1
- 2
- 3
- 4
- 5
- 6
5.令人疑惑的例子(重要)
“`
解释:
首先,leo类中没有添加任何东西,pass语句表示什么也不做
利用前面讲的性质手动添加属性(这时候类里面有name和age两个属性)
这个时候实例本身没有属性,实例对于类的继承也是搜索上面的类.,所以,在没有改变之前,就连值都还是类中的值。但是某一个实例改变属性值的时候,它便有了自己的属性.同时不会影响到上层的类的属性.因此,这个时候,x有了自己name属性,但是y依然需要从类中来找.
先打个预防针:本质上面,命名空间对象的属性都是以字典的形式来实现的,而类继承树只是连接其他字典的字典而已.(很抽象,之后会详细讨论)
dict属性是针对大多数基于类的对象的命名空间字典(注意:leo有自己的name,age。X也有自己的name,但是y什么也没有,因为y没有赋值改变的操作。所以只会搜索到它的类中去找
class指出连接的类.bases指出一个类的超类.
最后的那部分说明,方法或是什么并不仅仅局限在一个class中,也可以在外部创建,然后赋值连接到类的内部也是一样可以的.这些都显示了Python的灵活性.
对于新手的建议就是老老实实的把一些方法什么的规规矩矩的写在类的内部,先练习好基本的格式,然后再扩展到动态.
二:类创建详细步骤
通过一个关于人事管理的程序,下面讲创建一个实际可用的类需要的基本步骤
版本一:
结果
步骤1:创建实例
1.构思类的功能和性质,应该得到一个什么样的类
2.想好在这个类中应当有的属性(在c++中被称为成员变量)
3.构造一个好的构造函数(这里有个地方注意,对于默认参数,当前一个参数为默认参数后,后面的所有参数必须规定为默认参数)
步骤2:添加行为方法
1.有成员变量是不够的,还要构思这个类能够有什么样的行为
2.对构思好的行为编写成员函数
步骤3:运算符重载
根据需要重载运算符使运算更加贴近自己编写的类,其实这步可要可不要.
步骤4:通过子类定制行为
1.类方法总是可以在一个实例中调用(通常都可以这么做,Python把该实例自动地发给self参数)Instance.method(args…..)
2.或者通过类来调用(较少使用,其中我们必须要手动的传递实例进去)
Class.method(instance,args…..)
- Python从入门到放弃(五):类细讲
- Python从入门到放弃(五):类细讲
- Python从入门到放弃
- OpenCV从入门到放弃(五):像素!
- JavaScript从入门到放弃(五)
- Python从入门到放弃(一):概论
- Python从入门到放弃(一):概论
- Python 从入门到放弃(一)
- Python 从入门到放弃(二)
- Python 从入门到放弃(三)
- NDK开发 从入门到放弃(五:JNI抛异常)
- Unity3D 从入门到放弃(五)----射箭游戏
- 微信小程序从入门到放弃(五)
- UnityShader从入门到放弃(五)漫反射—逐片元光照
- Python从入门到放弃(二):核心数据类型
- Python从入门到放弃(三):基本语句和语法
- Python从入门到放弃(四):函数细讲
- Python从入门到放弃(二):核心数据类型
- php启动内置服务器
- MySQL远程登录root用户失败--MySQL ERROR 1045 (28000): Access denied for user 'root' - Solution
- XSS防御相关—HTML和JavaScript的自解码次序
- http://blog.sina.com.cn/s/blog_b5fe6b270101caub.html
- yii2.0学习笔记
- Python从入门到放弃(五):类细讲
- Python实现简单的Web服务器
- 解决“此构建版本无效”问题
- Python实现键值数据库
- 神经网络实现手写字符识别系统
- jrtplib使用笔记
- Python实现3D建模工具
- TOJ 2838.The Eating Puzzle
- iOS10-配置获取隐私数据权限声明