位置: 编程技术 - 正文

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 curl设置cookie
  • 代扣代缴企业所得税账务处理
  • php中函数定义没有返回值类型
  • php三大特性
  • ajax调用php接口
  • el-switch右对齐
  • pytorch .t()
  • 汽车检测没过收钱不
  • vue中的路由守卫有哪些
  • 应届生优势大吗
  • 减免残保金的操作方法
  • 专利费用计入研发费用还是管理费用
  • 物流货运发票要交税吗
  • abs函数python怎么用
  • 递延收益的影响
  • 企业会计准则无形资产土地摊销
  • 间接费用会计科目
  • 先弥补亏损还是先分配利润
  • 其他应收款利息按什么计算
  • 成本核算分摊方法总结
  • 营业外收入如何纳税
  • 管理费用 暂估入账
  • 机关事业单位购买口罩
  • 发票开具流程是?
  • 个体工商户怎么注册
  • 行政事业单位银行开户规定
  • 公司班车费用如何入账
  • 事业单位基建账套会计科目
  • 自产自销农产品免税备案取消
  • 季度平均人数怎么算出来的
  • 企业组织结构的本质是
  • 公司坏账率一般多少
  • 如何正确设置会员账号
  • 如何优化sql语句执行效率
  • sql语句提取字符串中数字
  • 如何恢复win8系统
  • mac系统怎么打开任务管理器
  • 正确安全管理操作手册
  • linux user命令
  • nodejs自动生成接口文档
  • android不同module怎么相互调用
  • perl脚本函数
  • 理解和运用的重要性要站在哪个的视觉去判断
  • Jquery AJAX POST与GET之间的区别详细介绍
  • android中edittext
  • java script和java区别
  • 发票查询为什么查不出来
  • 国家税务局公告2021年第3号
  • 街道税务所职责和任务
  • 小型贸易公司怎么赚钱
  • 税务局监控个人账户流程
  • 水厂管理经验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设