位置: 编程技术 - 正文

Python进阶学习之特殊方法实例详析(python 进阶)

编辑:rootadmin

推荐整理分享Python进阶学习之特殊方法实例详析(python 进阶),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python进阶训练营,python进阶书籍的推荐 知乎,python高手进阶之路,python从入门到精通,python进阶书籍的推荐 知乎,python高手进阶之路,python进阶书籍的推荐 知乎,python高手进阶之路,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近在学习python,学习到了一个之前没接触过的--特殊方法。

什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方法,也叫作魔术方法。简单来说,特殊方法可以给你设计的类加上一些神奇的特性,比如可以进行python原生的切片操作,迭代、连乘操作等。在python中,特殊方法以双下划线开始,以双下划线结束。

一个大例子

数学中有一个表示数的概念叫做向量,但是python中的数据类型却没有。我们来设法用python实现它。

首先考虑,向量跟普通的数据类型不同,传统的数可以直接进行运算,向量则需要对不同的坐标分别运算。来试试。

首先定义一个类,实现初始化方法。

如何实现向量的加法?二维向量中,向量的加法就是每个坐标分别相加得到的结果。在python中有个$__add__$方法,用来进行加法操作。

Python进阶学习之特殊方法实例详析(python 进阶)

我们对x和y变量分别进行相加,然后返回Vector。在python你可以对字符串直接用加法拼接起来的原理就在此,python实现了针对字符串的add方法。

实现了加法,乘法的道理一样,分别对每个坐标单独相乘即可。

我们在进行向量运算时还有一个常用的操作是求向量的模,我们用$__abs__$特殊方法来实现,abs一般用来求一个数的绝对值,向量用不到,用来求模刚好合适。使用math模块中的hypot方法计算$sqrt(x^2+y^2)$。

找个例子运行下。

可以运行了,貌似是正确的,但是输出的结果很奇怪。怎么办?python中有个$__repr__$特殊方法,可以修改控制台输出的样式。

实现了$__repr__$方法,我们就可以在控制台输出Vecotor(x,y)。与之对应的有个$__str__$方法,使用str()返回相应的字符串,展示给用户。

现在来看下之前程序运行的结果。

效果不错。

通过实现特殊方法,自定义类型可以表现的跟内置类型一样,让我们能够写出更具有python风格的代码。

除了上面说到的几个特殊方法外,python还有差不多多个特殊方法,比如$__len__$方法可以用来求长度,$__getitem__$可以使用haha[2]之类的操作进行切片和迭代等,同样的还有$__setitem__$。

总结

标签: python 进阶

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

上一篇:Python用户推荐系统曼哈顿算法实现完整代码(基于python的推荐系统)

下一篇:Python实现调度算法代码详解(python任务调度之schedule)

  • 什么是土地使用权终结
  • 递延所得税资产账务处理
  • 已申报税额是什么意思可以退吗
  • 一般纳税人报税流程详细操作
  • 员工辞退补偿金需要交个税吗
  • 一次性用品可以做什么
  • 横幅属于什么发票范围
  • 固定总价合同中,承包人承担的价格风险
  • 厨房酒店用品
  • 持续经营净利润率怎么算
  • 企业撤资的所得税处理
  • 房地产企业融资存在的问题
  • 多交税款如何处罚
  • 契税的会计分录有哪些
  • 员工离职的补偿金怎么入账
  • 员工出差住宿费计入什么科目
  • 税款返点如何做财务处理呢?
  • 售后返租税收规定
  • 国债利息纳税调增还是减
  • 委托加工物资的消费税
  • 应收账款分录借方负数转到预收账款的哪方
  • 劳务公司费用成本怎么算
  • 腾讯电脑管家游戏模式
  • 新会计准则的科目
  • PHP:oci_new_cursor()的用法_Oracle函数
  • 电脑记事本在哪里打开
  • 怎么制作网线接口
  • 差额征税的项目有哪些
  • php数组函数题目
  • 商业汇票抵付前欠货款的分录
  • promise基本使用
  • php用在哪些方面
  • 收到一分钱的红包表情包
  • 织梦怎么改网站主页
  • 银行结算方式有哪几种?其具体内容是什么
  • 债权投资产生的暂时性差异确认所得税吗
  • 实物投资入股
  • 公司制作横幅计入什么科目?
  • 什么是试算平衡表,编制试算平衡表时应注意哪些方面
  • 开具红字专用发票理由
  • 车保险里面的车船税
  • 行政事业单位拨款请示在前还是发票在前
  • 增值税涉及的税目有哪些
  • 包装物范围
  • 月末结转各项费用支出479000
  • 营业费用这个科目还在用吗
  • 政府奖励企业如何领取
  • mysql中注释
  • sqlbean
  • mysql5.7主从配置
  • mysql检索语句
  • windows无法打开添加打印机
  • win10蓝屏出现错误
  • win7系统如何创建管理员账户
  • dll文件应该放在哪里
  • 如何关闭win8快速启动
  • 三种方法完美解决问题
  • win8安装ie11
  • linux中find命令用法
  • 如何搭建环境变量
  • Unity3D游戏开发培训课程大纲
  • Jquery操作Ajax方法小结
  • vue中组件的作用是什么
  • javascript教程完整版
  • jquery插件使用教程
  • shell遍历sql查询结果
  • node.js操作
  • unity cpu优化
  • unitysdk接入
  • html5游戏引擎排行
  • jquery ztree选中节点颜色
  • js正则表达式验证姓名
  • jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
  • jquery输出语句
  • python简要介绍
  • 本期预缴税额怎么填
  • 国税系统如何查询发票
  • 上期留底税额怎么查
  • 2018建筑材料考试试题及答案河南卷
  • 宁波购房契税退税条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设