Python与函数重载
来源:互联网 发布:color软件下载安装 编辑:程序博客网 时间:2024/05/28 06:06
函数重载是OOP的基本特性之一, 名字相同但参数类型或个数不同时执行不同的函数. 但因为Python是弱类型语言(不需要声明变量类型), 所以它不支持通过参数类型来支持重载. 这是Python在3之前的不足之处. 3.4之后, Python也提供重载机制: 转发(Dispatch).
singledispatch
#!/usr/bin/python3from functools import singledispatch@singledispatchdef to_str(obj): print('%r'%(obj))@to_str.register(int)def _to_str(obj): print('Integer: %d'%(obj))@to_str.register(str)def _to_str(obj): print('String: %s'%(obj))@to_str.register(list)def _to_str(obj): print('List: %r'%(obj))if __name__ == "__main__": to_str(1) to_str('hello') to_str(range(3)) to_str(object)
执行脚本, 得到输出:
Integer: 1String: hellorange(0, 3)<class 'object'>
其中, 有两个关键的接口: singledispatch
与register
. 还需要注意, 定义重载函数时, 函数名(_to_str
)不能与被重载函数(to_str
)一样, 那样会覆盖被重载函数, 导致报错. 另外, singledispatch
只支持根据第一个参数的类型来重载. Python3标准库中好像没有对多参数重载的支持.
阅读全文
0 0
- Python与函数重载
- Python对象类型判断与函数重载
- python 函数重载
- Python实现函数重载
- python 函数重载
- Python的函数重载
- Python 类,函数重载
- 方法重载与函数重载
- python中的__init__函数重载与覆盖问题
- php函数重载与构造函数重载
- 函数重载与匹配
- const与重载函数
- 函数重载与模板
- 函数重载与重写
- 函数重载与模板
- 虚函数与重载函数
- 函数重载与函数模板
- 重载函数与函数模板
- JS控制input颜色
- 理解 JavaScript 的 async/await
- 路由,删除,模糊查询,查询天气,全选,添加
- ORA-00838: Specified value of MEMORY_TARGET 解决方案!
- 设计模式简介
- Python与函数重载
- PopupWindow的使用
- js websocket
- Java算法-快速排序
- url中的20%、22%、26%、7B%、%7D、28%、29%怎么解析还原成真实的字符
- QT开发错误集
- 函数对象---operator()
- CDH 里面配置spark-sql
- 域名解密 商家联盟会员消费管理系统_连锁店会员积分系统 带微信(域名加密的) aqinxiaodian