今天在编写Python脚本时遇到一个问题,我写一个了函数实现了一些功能,假设这个函数为func_A()。
(图源 :pixabay)
def func_A(var_1, var_2, var_3,var_4):
但是其实var_1、var_2, var3,,var_4
是一组高度相关的数据,所以我打算把它们放到一个字典(dictionary)中vars,然后实现一个函数直接处理这个字典。
我首先想到的就是重载 func_A
,定义如下:
def func_A(vars):
然后实现中调用原本的之前的函数:
return func_A(vars["var1"], vars["var2"], vars["var3"], vars["var4"])
结果调用时却出现了如下提示,
好吧,尽管我的思路很是清奇,但是我感觉我没做错什么呀?为啥会出错呢?
找了一些文章,原来Python并不支持函数重载,当然也并不是没有办法实现,比如说可以用默认参数,传入不定数量参数,或者使用什么@overload
修饰符啥的。
解决
但是对我而言,没必要那么折腾,最简单的方式是给函数改个名字,比如说第二个函数就叫func_B
好了。
或者既然我觉得var_1、var_2, var3,,var_4
是一组高度相关的数据,不应该被分散调用,那么干脆就把func_A(var_1, var_2, var_3,var_4)
这个函数删除,直接用func_A(vars)
实现好了。
结论
Python 并不支持重载,所以我使用了改函数名或者重新实现函数来解决。
我一贯的原则是,不要纠结语言啊语法等问题,把问题解决了就好,哈哈。
遇到问题,没必要和问题死磕,绕过去就好了嘛。不过知道了Python不支持重载,那么以后就不会犯这样的错误啦。
参考链接
https://steemit.com/~witnesses type in
oflyhigh
and click VOTE
Vote @oflyhigh via Steemconnect
Thank you!
This page is synchronized from the post: ‘每天进步一点点:原来Python不支持函数重载’