gzyueqian
13352868059

Python培训机构讲解python重载机制原理

更新时间: 2020-03-20 16:08:48来源: 粤嵌教育浏览量:6051

   Python在开发语言中算是一个比较新的开发语言了,在人工智能崛起之后现在的python在开发界是有了一定的地位的了,那么对于python的工作者来说python重裁机制的原理是怎么样的呢?下面python培训机构粤嵌科技的小编就来给大家整理一篇关于这个问题的技术文,希望对大家有一定的作用。

  函数重载主要是为了解决两个问题。


  1、可变参数类型


  2、可变参数个数


  另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。


  那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。


  那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。


  重载(overload)和覆盖(override),在C++,Java,C#等静态类型语言类型语言中,这两个概念同时存在。前者是为了让同一个函数名(方法名)匹配不同的参数(个数不同,类型不同);后者是为了实现多态,在相同名称的函数(方法)和参数,在不同的类中(父类,子类),有不同的实现。


  Python是动态类型语言,不能简单地说它支持或者不支持重载,重载仍然存在,只是以不同的方式呈现。原来我们理解的重载,都是在静态类型语言中,关心参数个数以及参数类型;在动态类型语言里的重载根本不需要关心参数类型,只需要关心参数个数。而在Python里,关心参数个数的重载是由默认参数和传递参数名称来实现的。这样,程序员就没有必要自己来写两个名称一样而参数不同的函数了!事实上,在同一个模块或者同一个类中,写两个名称相同的方法的时候(参数个数是否相同不重要),后面的那个方法会简单覆盖前面的方面;其次,在子类继承父类时,同名(不同参)的方法也会简单覆盖(子类覆盖父类)。但是,这不说明Python没有重载,它只是不需要程序员自己来实现重载(如果说程序员还需要做什么的话,那就仅仅是要定义默认参数和参数名称)。如果你需要重载的话,”默认参数+参数名传递“就能达到你想要的重载了!


  以上就是python培训机构粤嵌科技给大家整理的关于python重载机制原理技术文了,对于python技术这块如果说你还有什么其他的疑问或者是不懂的话,那么粤嵌科技欢迎大家来和我们的python讲师进行沟通和交流,获取方式可以通过点击我们文章下面的获取试听资格按钮来获取我们的和讲师沟通资格。

免费预约试听课