位置: 编程技术 - 正文

Python的面向对象编程方式学习笔记(python的面向对象和模块原理)

编辑:rootadmin

推荐整理分享Python的面向对象编程方式学习笔记(python的面向对象和模块原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中面向对象的三大特征,python的面向对象编程,python的面向对象和Java的面向对象,python面向对象的基本概念,python的面向对象和模块原理,python的面向对象和Java的面向对象,python的面向对象编程,python的面向对象怎么理解,内容如对您有帮助,希望把文章链接给更多的朋友!

类与实例类与实例相互关联着:类是对象的定义,而实例是“真正的实物”,它存放了类中所定义的对象的具体信息。

下面的示例展示了如何创建一个类:

关键字是 class,紧接着一个类名。随后是定义类的类代码。这里通常由各种各样的定义和声明组成。新式类和经典类声明的最大不同在于,所有新式类必须继承至少一个父类,参数 bases 可以是一个(单继承)或多个(多重继承)用于继承的父类。

创建一个实例的过程称作实例化,过程如下(注意:没有使用 new 关键字):

类名使用我们所熟悉的函数操作符(()),以“函数调用”的形式出现。然后你通常会把这个新建的实例赋给一个变量。赋值在语法上不是必须的,但如果你没有把这个实例保存到一个变量中,它就没用了,会被自动垃圾收集器回收,因为任何引用指向这个实例。这样,你刚刚所做的一切,就是为那个实例分配了一块内存,随即又释放了它。

类既可以很简单,也可以很复杂,这全凭你的需要。最简单的情况,类仅用作名称空间(namespace)。这意味着你把数据保存在变量中,对他们按名称空间进行分组,使得他们处于同样的关系空间中——所谓的关系是使用标准 Python 句点属性标识。例如,你有一个本身没有任何属性的类,使用它仅对数据提供一个名字空间,让你的类拥有像 C 语言中的结构体(structure)一样的特性,或者换句话说,这样的类仅作为容器对象来共享名字空间。

示例如下:

方法在 Python 中,方法定义在类定义中,但只能被实例所调用。也就是说,调用一个方法的最终途径必须是这样的:(1)定义类(和方法);(2)创建一个实例;(3)最后一步,用这个实例调用方法。例如:

这里的 self 参数,它在所有的方法声明中都存在。这个参数代表实例对象本身,当你用实例调用方法时,由解释器传递给方法的,所以,你不需要自己传递 self 进来,因为它是自动传入的。

举例说明一下,假如你有一个带两参数的方法,所有你的调用只需要传递第二个参数。

下面是实例化这个类,并调用那个方法:

\_init\(),是一个特殊的方法。在 Python 中, \init\() 实际上不是一个构造器。你没有调用“new”来创建一个新对象。(Python 根本就没有“new”这个关键字)。取而代之, Python 创建实例后,在实例化过程中,调用 \init\_()方法,当一个类被实例化时,就可以定义额外的行为,比如,设定初始值或者运行一些初步诊断代码——主要是在实例被创建后,实例化调用返回这个实例之前,去执行某些特定的任务或设置。

创建一个类(类定义)

Python的面向对象编程方式学习笔记(python的面向对象和模块原理)

在 AddrBookEntry 类的定义中,定义了两个方法: \_init\()和updatePhone()。\init\()在实例化时被调用,即,在AddrBookEntry()被调用时。你可以认为实例化是对 \init\()的一种隐式的调用,因为传给AddrBookEntry()的参数完全与\init\_()接收到的参数是一样的(除了self,它是自动传递的)。

创建实例(实例化)

这就是实例化调用,它会自动调用 \_init\()。 self 把实例对象自动传入\init\_()。

另外,如果不存在默认的参数,那么传给 \_init\_() 的两个参数在实例化时是必须的。

访问实例属性

一旦实例被创建后,就可以证实一下,在实例化过程中,我们的实例属性是否确实被 \_init\_() 设置了。我们可以通过解释器“转储”实例来查看它是什么类型的对象。

方法调用(通过实例)

updatePhone()方法需要一个参数(不计 self 在内):新的电话号码。在 updatePhone()之后,立即检查实例属性,可以证实已生效。

方法与属性的小结直接上代码,已经在里面有注释了

创建子类靠继承来进行子类化是创建和定制新类型的一种方式,新的类将保持已存在类所有的特性,而不会改动原来类的定义。对于新类类型而言,这个新的子类可以定制只属于它的特定功能。除了与父类或基类的关系外,子类与通常的类没有什么区别,也像一般类一样进行实例化。注意下面,子类声明中提到了父类:

现在我们创建了第一个子类, EmplAddrBookEntry。 Python 中,当一个类被派生出来,子类就继承了基类的属性,所以,在上面的类中,我们不仅定义了 \_init\_(),UpdateEmail()方法,而且 EmplAddrBookEntry 还从 AddrBookEntry 中继承了 updatePhone()方法。

如果需要,每个子类最好定义它自己的构造器,不然,基类的构造器会被调用。然而,如果子类重写基类的构造器,基类的构造器就不会被自动调用了——这样,基类的构造器就必须显式写出才会被执行,就像我们上面那样,用AddrBookEntry.\_init\_()设置名字和电话号码。我们的子类在构造器后面几行还设置了另外两个实例属性:员工ID和电子邮件地址。

注意,这里我们要显式传递 self 实例对象给基类构造器,因为我们不是在该实例中而是在一个子类实例中调用那个方法。因为我们不是通过实例来调用它,这种未绑定的方法调用需要传递一个适当的实例(self)给方法。

使用子类

深度定制Python的Flask框架开发环境的一些技巧总结 Flask环境配置你的应用程序可能需要大量的软件包才能正常的工作。如果都不需要Flask包的话,你有可能读错了教程。当应用程序运行的时候,你的应用

Python的Flask框架标配模板引擎Jinja2的使用教程 Jinja2需要Python2.4以上的版本。安装按照Jinja有多种方式,你可以根据需要选择不同的按照方式。使用easy_install或pip:#sudoeasy_installJinja2#sudopipinstallJinja2这两

使用Python的Flask框架表单插件Flask-WTF实现Web登录验证 表单是让用户与我们的网页应用程序交互的基本元素。Flask本身并不会帮助我们处理表单,但是Flask-WTF扩展让我们在我们的Flask应用程序中使用流行的WTFo

标签: python的面向对象和模块原理

本文链接地址:https://www.jiuchutong.com/biancheng/386976.html 转载请保留说明!

上一篇:Python使用cookielib模块操作cookie的实例教程(python3 cookie)

下一篇:Python设计足球联赛赛程表程序的思路与简单实现示例(python画足球)

  • 小规模纳税人如何计算增值税
  • 递延所得税资产账务处理
  • 不征税收入的三个条件文件依据
  • 财政补贴收入要交印花税吗
  • 公转私人账户怎么转
  • 培训会议费能否抵扣
  • 企业为什么会有两个中征码
  • 支付土地使用权的会计处理
  • 收到借款确认书模板
  • 对公账户的钱怎么取出来才不用交税
  • 劳务税能不能抵扣
  • 开发票税收分类编码怎么选
  • 代增值税专用发票网上申请
  • 信托真实案例
  • 哪些进项税不能加计抵减
  • 事业单位固定资产标准
  • 小规模纳税人适用的增值税征收率
  • 党费专用账户可以收取转账费用吗
  • 新开办公司前三个月没交社保,后面正常缴纳
  • win10怎么看电脑名称
  • 如何增强无线网卡的接收能力
  • 建筑业 分包
  • win10如何关闭windows安全中心图标
  • 异地预缴税款后当地还交吗
  • 个人所得税查账征收管理办法
  • 持有至到期投资减值准备
  • Linux下使用quota命令管理磁盘空间的实例教程
  • flex的几个常用布局
  • php domdocument
  • 怎么分析一个企业的营销策略
  • 用土地抵账合法吗
  • php框架yii
  • 分公司独立核算和非独立核算哪个好
  • 覆盖的盖
  • 被称为下一代风华的是
  • 博客界面模板
  • 提供加工劳务怎么开票
  • 财务报表季报应付职工薪酬是指三个月工资累计还是
  • 增值税申报销项发票采集少了怎么办
  • 收到的发票税收怎么处理
  • 帝国cms自动推送插件
  • mysql union or
  • 工会保障工作的主要任务有哪些
  • 低值易耗品在年报上怎么看的
  • 企业正常性停产什么意思
  • 个税申报更正申报如何操作
  • sqlserver2005 TSql新功能学习总结(数据类型篇)
  • 外贸进项税额怎么算
  • 库存暂估入账的会计分录
  • 企业固定资产纳税
  • 其他非流动资产是会计科目吗
  • 非广告性质的赞助支出
  • 更衣柜分配方案
  • 单位发给职工的餐费补贴我变卖了违法吗?
  • 营改增后房租发票可以抵扣吗
  • 发票抵扣联要放入凭证里吗
  • 工伤医疗补助可以申请吗
  • 单利率和复利率公式
  • 银行回单模板
  • 会计错账更正方法口诀
  • 怎么从会计小白做到总账会计
  • Windows Server 2008下高效域管理体验
  • centos sudoers
  • googletoolbarnotifier.exe是什么进程?GoogleToolbarNotifier怎么关闭?
  • Linux服务器管理的开机界面
  • mainwindow是什么程序
  • windows8.1正版
  • linux mkdir函数创建多级目录
  • onetouch.exe - onetouch是什么进程 有什么用
  • awtk linux
  • 电脑window8系统怎么样
  • win7系统重启后黑屏不进系统
  • 不格式化更改盘符
  • el-menu-item
  • 批处理 >nul
  • perl 调用perl
  • javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
  • JavaScript中的NaN代表什么
  • jquery中的css方法
  • 河南省地方税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设