python系列教程177——多态

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

在我们前面编写的times函数中,表达式xy的意义完全取决于x和y的对象类型,同样的函数,在一个实例下执行的是乘法,在另一个实例下执行的可能是赋值。“”在针对正被处理的对象进行了随机应变。

这种依赖类型的行为称为多态,其含义就是一个操作的意义取决于被操作对象的类型。因为Python是动态类型语言,所以多态在Python中随处可见。实际上,在Python中每个操作都是多态的操作:print、index、*操作符等等。

这实际上是有意而为的,并且从很大程度上算作是这门语言的简易性和灵活性的一个表现。作为函数,例如,它可以自动地适用于所有类别的对象类型。只要对象支持所预期的接口,那么函数就能处理。

即使是简单的times函数,任意两个支持*的对象都可以执行,无论它是哪种类型。这个函数对于数字来说是有效的(执行乘法),对于两个字符串或者一个字符串和一个数字也是有效的(执行重复),或者对于任意其他支持此类接口的兼容对象都是有效的。

除此之外,如果传递的对象不支持这种预期的接口,Python将会在*表达式运行时检测到错误,并自动抛出一个异常。

这也是Python和静态类型语言(如C++和Java)至关重要不同之处:在Python中,代码不应该关心特定的数据类型。如果不是这样,那么代码将只对编写时你所关心的那些类型有效,对以后的那些可能会编写的兼容对象类型并不支持,这样做会打乱代码的灵活性。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

人工智能AI技术

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值