位置: 编程技术 - 正文

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)

  • 营改增后房地产会计账务处理
  • 小规模纳税人进项可以抵扣吗
  • 国家重大水利工程建设基金计算方法
  • 企业以买一赠一
  • 公司端午礼盒
  • 资产负债表本月期末余额怎么填
  • 如何从对公账户的资金情况来确定案件,发现犯罪嫌疑人?
  • 自然人管理系统银行信息
  • 可供出售金融资产会计处理
  • 预付款项包括哪些项目
  • 销售承兑现金会退回来吗
  • 新公司成立前期人员配置
  • 公益捐赠税前扣除凭证
  • 对外支付佣金代扣代缴
  • 如何查询当月社保和公积金是否缴纳
  • 营业账簿印花税包括什么
  • 旅行社代订机票可以入差旅费报销吗
  • 航天发票上传不成功怎么手动上传
  • 全资子公司合并抵消
  • 集体福利是否可以抵税
  • 地方教育附加可以在企业所得税前扣除吗
  • 1697510614
  • 收到租金税率
  • 待抵扣进项税期末要结转吗
  • wordpress portfolio
  • wordpress 常用函数
  • plugin.exe是什么进程
  • vue+cesium怎么实现地图的加载
  • 购进商品怎么做会计分录
  • 股权交易的重要性
  • dmc32.dll
  • tim模块
  • 国有资产无偿划转协议
  • 最贵的域名是什么名字
  • 原材料预付款如何做账
  • wordpress开发app
  • php解析配置文件
  • transformer的解码器
  • 最新windows11安装要求
  • 计算机视觉的应用
  • php新手入门教程
  • 旅行社差额征收 政策
  • 金税盘怎么取消
  • wordpress隐藏内容付费可见
  • 学电脑的网站
  • 关于固定资产的说法
  • 通行费抵扣进项税怎么做账
  • 公司自主研发新能源汽车
  • 买的加油卡怎么充值
  • 资金过账属于洗钱吗
  • 会计丁字记账法
  • 为什么要加大研发投入
  • 收到的承兑怎么转给别人
  • 税费不足50
  • 应付职工薪酬的核算内容
  • 购买汽车轮胎的注意事项
  • 预付房租收到发票后如何做账
  • 食品企业产品
  • 建筑企业成本核算方法
  • 应收帐款表
  • 销项减进项税额
  • 编制合并财务报表的依据是纳入合并
  • debian10.6安装教程
  • hkcmd.exe损坏文件
  • win7注册表修改开机密码
  • win8 网络连接
  • opera installer
  • linux必知必会
  • cocos预加载
  • unity3d第三人称角色控制器
  • 重装操作系统后无法开机
  • jquery validate表单校验html
  • js 图像
  • unity soket
  • javascript点击按钮改变字体颜色
  • Optimizing Unity Games for Mobile Platforms
  • 基于javascript的毕业设计
  • 失业保险金领取成功
  • 湖南地税电话号码
  • 微信密码忘记了,手机号也没有用了,怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设