Python量化交易之类详解

本文详细介绍了Python中的面向对象编程,包括类的特性——封装、继承和多态,以及类的定义、实例化、属性和方法。通过实例解释了类的继承,展示了子类如何覆盖父类的属性和方法。面向对象编程提供了代码复用和模块化设计的能力,使得程序更加灵活和易于维护。
摘要由CSDN通过智能技术生成

面向对象编程:

1、类的特性:

把一定的数据和处理数据的方法封装在一起,成为一个整体,这个整体在计算机语言里称为对象封装数据和方法的过程称为面向对象编程

Python中,把有着相同属性和方法的对象集合称为类,而一个对象就是类的具体实例

比如,猫都有颜色、四肢等属性,也有跑步、跳跃等功能(方法),因此猫就是一个类,而某只具体的猫,是猫类的具体实例。

再比如,整型是一个类,某个具体的数值,比如“5”,就是整型的具体实例。

类type()可以查看一个对象是什么类型,例如:

>>> type(5)
<class 'int'>
>>> type(5.0)
<class 'float'>
>>> type('a')
<class 'str'>
>>> type(range(5))
<class 'range'>
>>>

上例可以看出,5是整型,5.0是浮点型,'a'是字符串,range(5)是range类型。

用函数isinstance(o, t)判断对象o是否是t类型或t的子类,例如:

>>> isinstance(5,int)
True
>>> isinstance(5,str)
False
>>> isinstance(5,object)
True
>>>

类有三个特性,封装继承多态

  • 封装:封装即是把数据和方法整合在一起,通过访问控制,可以隐藏内部数据,只允许外部对象访问自己的部分数据或方法。封装保证了对象的独立性,可以防止外部程序破坏对象的内部数据,同时便于程序的维护和修改。
  • 继承:继承是面向对象的程序设计中代码重用的主要方法,继承允许使用现有类的功能,并在无需重新改写原来的类的情况下,对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。被继承的类称为基类、父类或超类,通过继承创建的新类称为子类或派生类。
  • 多态:子类具有父类的所有非私有数据和方法,以及子类自己定义的所有其他数据或方法,即子类具有两个有效类型:子类的类型及其继承的基类的类型。对象可以表现多个类型的能力称为多态性。

例如,猫,可看成是大自然封装的一个对象,其颜色可以被看到(访问数据属性),猫也可以用来抓老鼠(访问其方法),但是猫体内的细胞无法被访问,DNA复制的过程无法被访问,这些无法被直接访问的称为对象的私有属性和私有方法。

所有的橘猫都是橘猫类,除了橘猫类,还有狸花猫类、波斯猫类等,这些猫类又组成了猫种,橘猫类具有自身的特征,比如毛是橘黄色的,橘猫类又有猫种的特征,比如可以撸,猫种又有猫科特征,比如有利爪,猫科又属于哺乳纲,等等。

在自然界,对物种的划分——种-属-科-目-纲-门-界——就是层层继承关系,类的继承也是如此,而且子类既具有自身特征,又继承了父类非私有特征,这便是类的多态性。

Python中的对象在调用时,不需要检查对象是什么类型的,只关注其有什么方法有什么属性,如果方法和属性可以被使用,则对象就可以被正常调用,这种特点又称为鸭子类型,鸭子类型的含义是“如果一个东西走起来像鸭子,叫起来也像鸭子,那它就是鸭子”,即不管这个东西的本来面目,只需要它表现出鸭子的特征就行,鸭子类型虽然给程序开发带来了便利,但也需要注意对象的内部逻辑,其原本的鸭子特征可能突然暴露出猪的面目而使程序崩溃。

2、类的定义:

函数是数据和流程控制语句的结合体,类可看成是数据、流程控制语句和函数的结合体。和函数一样,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值