位置: 编程技术 - 正文

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数组函数题目
  • 今天端午节?
  • 外经交的个税如何计算
  • vue自定义弹窗带有遮罩层
  • 小规模纳税人的增值税账务处理
  • vue keep-alive实现原理
  • 京东到家的物流模式
  • tsop封装
  • 补缴税款账务处理
  • 总公司发票可以从分公司付款吗
  • 织梦图片集如何调用
  • 现金支出的账务处理
  • 上期金额是本年累计金额吗
  • 增值税专票怎么交税
  • 从事特殊行业
  • 所得税交多了怎么留抵
  • 收到备用金会计分录
  • 专门借款本金汇兑差额
  • 跨区域缴纳个税相关规定
  • 销项税和进项税的区别
  • 免费样品的好处
  • 一次性付清的优缺点
  • 办理股权转让需要多久时间
  • 土地的入账科目
  • 如何提取工会经费的钱
  • 折现率的选择主要是根据什么来判断
  • 资本和资产的区别举例说明
  • mysql中的存储过程
  • linux的telnet用法
  • wps2019视频
  • 主板bios恢复出厂默认设置方法
  • win7的屏保设置在哪里
  • 苹果mac系统怎么截屏快捷键
  • mac如何关闭开机密码
  • windows8使用技巧
  • windows8兼容性
  • win7系统怎么截图然后保存
  • typescript尖括号
  • 骨骼动画程序设计
  • jquery select2的使用心得(推荐)
  • Node.js中的事件循环是什么样的
  • django forloop
  • node.js怎么创建js文件
  • unitysdk接入
  • java分布式计算
  • 深入理解新发展理念
  • 关于python整数类型
  • 宾馆税务
  • 重庆电子税务局网页版登录
  • 建筑业按多少税收
  • 出口退税的管理办法
  • 我国国家治理体系是一整套什么的国家制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设