位置: 编程技术 - 正文

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)

  • 福利费进项税额转出会计分录账务处理
  • 非税收入票据可以手写吗
  • 公司和劳务公司合作工资代发
  • 金蝶余额调节表怎么看当月的
  • 社保工伤保险可以交两家公司吗
  • 金税盘的发票怎么作废
  • 失业保险费返还后是给单位还是给员工
  • 预交所得税利润表怎么填
  • 公司刚注册之后怎么办
  • 未投入使用的道路
  • 固定资产加速折旧会计处理
  • 商业汇票的使用范围
  • 利息收入为什么是负数
  • 开完发票业务没收入需要确认收入入账吗?
  • 文化建设事业费逾期申报有罚款吗
  • 安装费发票开具3%税率国税需要备案吗?
  • 简要回答建筑企业如何实现利润最大化
  • 公司股东认缴资质末到位导致公司破产应承担什么责任
  • 基金赎回未到账可继续买吗?
  • 普票需要缴纳印花税吗
  • 资本公积 税务
  • 外汇的收入
  • m1 mac 恢复出厂
  • 上期金额为上年同期报表的本期金额
  • 如何防范税务风险
  • 对公收到别人的转账怎么记账
  • php有啥用
  • apache运行php
  • ie浏览器进程
  • PHP:preg_match_all()的用法_PCRE正则函数
  • linux设置壁纸的命令
  • 位于Praprotno村之上的圣托马斯教堂 (© Guy Edwardes/Minden Pictures)
  • 固定资产按公允价值还是约定的价值
  • 资产负债表项目填列的依据是
  • lvs安装配置
  • 一般纳税人筹建期不用交税吗
  • web前端基础是什么
  • 非成品油发票为什么不能抵扣
  • 残疾人个人所得税减免怎么填写申报
  • 企业做账会计分录流程
  • 其他综合收益要结转到本年利润吗
  • 分公司可以单独上市吗
  • 待报解预算收入扣款是什么意思
  • SQL Server中的XML数据进行insert、update、delete操作实现代码
  • 自产商品对外赠送
  • 进口关税减免政策
  • 会计做账的凭据是什么
  • 计提本月应交增值税
  • 结转公允价值变动
  • 消防公司会计分录
  • 子公司提取盈余公积
  • 收据能作为抵减成本吗
  • 手工账明细账怎么登记
  • 设备维保费如何计算
  • 根据企业会计准则第11号规定,下列关于等待期
  • 行政事业单位能报销瓶装水吗
  • 记帐凭证会计处理程序及其应用
  • sql语句中单引号怎么打
  • sql查询和遍历数据
  • 配置是什么意思
  • windows8.
  • centos7配置ssh免密码登录
  • ubuntu系统安装程序
  • ie10怎么设置ie8兼容模式
  • 怎么设置开机启动项?
  • win10mobile最新版本
  • linux查看使用率命令
  • shell数组遍历
  • unity jsonobject
  • unity射击游戏完整案例
  • android动画种类
  • win10下python
  • 客户端名称 android-
  • 整理Javascript事件响应学习笔记
  • javascript脚本大全
  • python网络编程从入门到精通
  • 免税证明怎么开?(国税局已回复)
  • 江苏税务社保缴纳查询缴费记录
  • 无锡第三税务分局
  • 北京车船税新标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设