信阳网站建设费用,电子政务网站建设公司排行榜,长沙建设教育网官网,阜阳哪里有做网站的需求分析 最近遇到这样一个需求#xff1a;根据用户传递的不同参数数量执行不同的功能。我这几天一直在思考这个问题#xff1a;如何根据参数数量去执行不同的功能#xff0c;最初的设想是把不需要的参数设置为NONE或者再或者 (后两者引号均表示传空…需求分析 最近遇到这样一个需求根据用户传递的不同参数数量执行不同的功能。我这几天一直在思考这个问题如何根据参数数量去执行不同的功能最初的设想是把不需要的参数设置为NONE或者再或者 (后两者引号均表示传空值的意思)但是呢运行的时候对这些为空的参数会出现解析错误导致我很烦明明paser解析的时候可以使这些参数为空为什么我传参数就不能为空气死气死一定是代码的问题。哦等等代码的问题那不就是我的问题不解决问题就解决出问题的人我这么自爱我选择解决问题。
初步设想 这个需求很明显是函数重载关于函数重载请参考这个链接无非就是把代码copy几份然后将函数的参数列表改为每个功能所需要的即可调用的时候只需判断一下调用的哪个功能就执行哪个函数就ok了perfect butwaitwait我这主函数的代码可是都杂糅在一起 有800多行复制三份就是2400多行关键是绝大部分代码都是不动改变的只有一小部分而以。我要这样做真传出去还不说我是个小白不能忍坚决不能忍
进一步构想 我记得python中有一个参数**args可以处理多个变量的问题干脆用这个 改完这个之后我原来的args就不能用了很显然其实也没那么显然我是看了报错信息才知道的命名冲突了。于是把原来的args换成了其他的如opt就可以了。但是但是又报错了
TypeError: main() takes 0 positional arguments but 3 were given 啊这还有人嫌参数少不应该啊查一下 在 Python 中*args 和 **kwargs 分别用于接受可变数量的位置参数和关键字参数。如果你将 *args 写成了 **args会导致错误因为它们的语法和含义是不同的。 当你使用 **args 时Python 会认为你正在使用关键字参数字典。这会导致将传递的关键字参数收集到一个字典中而不是像 *args 那样收集位置参数到元组中。由于这两种参数类型是不同的因此将 *args 写成 **args 会导致语法错误。 斯高一原来是多给了一个星还是不能太大方该一个就一个改完之后完美运行 完结撒花 解决完这个之后第一想法就是写下来纪念自己又蠢又笨的经历写下来还挺轻松的。当然可变参数数量不仅可以用“*args”还可以用“**kwargs”朋友们我说什么朋友们不怪我记错是他俩太像导致我记混了那希望大家不要混淆详细的用法请查看*args **kwargshttps://www.geeksforgeeks.org/args-kwargs-python/也可以看这位博主【Python】*args 和 **kwargs的用法【最全详解】https://blog.csdn.net/GODSuner/article/details/117961990?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-117961990-blog-125363261.235%5Ev38%5Epc_relevant_default_base3spm1001.2101.3001.4242.2utm_relevant_index4