导语:
本文主要介绍了关于python是否支持重载的相关知识,希望可以帮到处于编程学习途中的小伙伴
在一些静态语言中,存在重载的概念。这是 OOP(面向对象编程)中的基本行为。
所谓重载,是指多个函数名相同的函数,根据传入的参数个数和类型,执行不同的功能。所以函数重载本质上是为了解决编程中变参不一致的问题。
python 中的重载
在python中有重载的思想但是没有重载的概念。所以有人说python语言不支持函数重载,也有人说python有重载函数。其实python编程有重载的目的,但是没有重载行为,或者说python不需要重载!
Python 是一种动态语言,不需要声明变量类型。该函数可以接受任何类型的参数,因此不支持根据参数类型进行重载。 Python 不需要考虑参数的类型。这些都可以在函数内部进行判断和处理。 ,无需编写函数。 Python 有多种传递参数的方法。默认参数/可变参数/可变关键字参数可以处理函数参数中可变参数的问题。
python3.4中增加的重载机制
在python3.4中提供有一个转发机制来实现重载:
from functools import singledispatch
@singledispatch
def function(obj):
print('%r'%(obj))
@function.register(int)
def function_int(obj):
print('Integer: %d'%(obj))
@function.register(str)
def function_int(obj):
print('String: %s'%(obj))
@function.register(list)
def function_list(obj):
print('List: %r'%(obj))
if __name__ == "__main__":
function(1)
function('hello')
function(range(3))
function(object)
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python创建堆的方法有哪些01/13
- ♥ Python重写了__new__方法12/30
- ♥ python pip升级失败如何解决08/24
- ♥ python是如何分布式存储文件的?12/08
- ♥ 如何在python中使用类型11/16
- ♥ 如何优化python的效率11/07
内容反馈