知行编程网知行编程网  2022-10-27 13:30 知行编程网 隐藏边栏  43 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python是否支持重载的相关知识,希望可以帮到处于编程学习途中的小伙伴

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)

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享