Python中文
首页
教程
问答
标签
搜索
登录
注册
在Python中实现JavaScript风格的可选参数
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<h2>JavaScript样式</h2> <p>假设我有一个函数以两个对象作为可选参数输入,对象中的一些参数有默认值,在JavaScript中,我可以这样实现:</p> <pre><code>function func(setting1, setting2){ arga = setting1.a || 1; argb = setting2.b || 2; argc = setting2.c; ... } </code></pre> <h2>Python实现</h2> <p>我想到了一些想法,但我认为没有一个是“好的”</p> <hr/> <p>第一个是:</p> <pre><code>params = {"arga":2, "argb":3} def func(argc, arga=1, argb=2): ... func(**params) </code></pre> <p>问题是,这种类型的实现不能支持我想要的语义,即setting1和setting2需要分开,因为它们服务于不同的子过程。此外,它还需要手动仔细选择默认参数的位置</p> <hr/> <p>这是第二个:</p> <pre><code>def func(setting1, setting2): try: arga = setting1.a except KeyError: arga = 1 ... </code></pre> <p>我觉得很难看</p> <hr/> <p>也许这是最好的:</p> <pre><code>def func(setting1, setting2): arga = setting1.get("a") or 1 argb = setting1.get("b") or 2 ... </code></pre> <hr/> <p>有什么好方法可以用python实现吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果<code>settingN</code>是<code>dict</code>,则可以执行以下操作:</p> <pre><code>argZ = settingN.get('z', default_value) </code></pre> <p>因此,如果<code>settingN</code>没有键<code>'z'</code>,则<code>default_value</code>将被返回</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
3 回答
当用户登录到站点时,如何显示不同的导航栏
2 回答
当用户登录时,在Flask中向用户显示处理结果
3 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
10 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
4 回答
当用户的付款逾期2天时,从Django模型检索数据
6 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
6 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
3 回答
当用户确定打印数量时,使用Matplotlib打印动画
8 回答
当用户离开时是否可以删除整个网页?
4 回答
当用户给出一个单词时如何打印?
8 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
7 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
2 回答
当用户被更改时,消息不会来自web套接字
10 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
6 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
9 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
3 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
4 回答
当用户购买某个类别时,是否查找其他类别的销售?
2 回答
当用户转到上一页时,Django和芹菜插入操作
4 回答