使用变量作为关键字来分配关键字参数的最 Pythonic 方式?

2024-04-25

What is 最Pythonic的方式解决以下问题?从交互式 shell 中:

>>> def f(a=False):
...     if a:
...         return 'a was True'
...     return 'a was False'
... 
>>> f(a=True)
'a was True'
>>> kw = 'a'
>>> val = True
>>> f(kw=val)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() got an unexpected keyword argument 'kw'

目前我正在通过以下方法解决这个问题:

>>> exec 'result = f(%s=val)' % kw
>>> result
'a was True'

但看起来很笨拙......

(python 2.7+或3.2+解决方案都可以)


Use 关键字参数解包 http://docs.python.org/tutorial/controlflow.html#keyword-arguments:

>>> kw = {'a': True}

>>> f(**kw)
<<< 'a was True'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用变量作为关键字来分配关键字参数的最 Pythonic 方式? 的相关文章

随机推荐

  • Retrofit 是否在主线程上进行网络调用?

    我正在尝试在 Android 上探索 Retrofit OkHttp 这是我在网上找到的一些代码 RestAdapter restAdapter new RestAdapter Builder setExecutors executor e
  • 通过列名动态访问游标

    我可以动态访问游标的列吗 我的意思是名字 像这样的东西 declare v cursor select from emp begin FOR reg IN v cursor LOOP dbms output put line reg col
  • 如何知道 ASP.net 是哪个版本?

    通过查看ASP NET项目 我们如何知道它内置的是哪个版本的ASP NET 有人可以列出识别版本的不同方法吗 谢谢 您需要小心此处使用的方法 因为 ASP NET 下的 NET 框架的某些更新似乎会在以前的版本号下运行 例如 ASP NET
  • 重写后.htaccess图像不显示

    我有一个问题 URL 已被这样重写 RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php test 1 NC L 我的图像和 CSS 样式都没有被应
  • VB.NET Custom Control(自定义绘图)刷新问题

    我用两个项目创建了一个简单的解决方案 第一个项目 类库 包含一个名为 Container 的自定义控件 它用圆角绘制自身 第二个项目 Windows 窗体 是一个测试应用程序 如果我在第二个项目的主窗体中添加一个容器实例 它会很好地显示圆角
  • Rails,为什么连接返回具有非唯一值的数组?

    我使用 Rails 3 为例 但我相信 Rails 2 3 也是如此 假设 我有一个有很多位置的模型城市 我尝试寻找有地点的城市 我使用以下代码 City joins locations 但输出数组是 gt
  • 如何对arraylist进行一系列排序操作(多个排序条件)

    我有一个对象数组列表 我想在此列表上运行一系列排序操作 例如 我想首先按名称对它们进行排序 如果两个名称相同 则按 id 对它们进行排序 我怎样才能实现它 这是我的代码 Comparator
  • MacVim 中的 Inconsolata 斜体

    我正在尝试使用 Inconsolata 作为 MacVim 中的字体 但我似乎找不到斜体版本 我使用的是日晒配色方案 它应该使注释斜体化 并且它适用于字体书中具有斜体或倾斜版本的字体 有没有办法以某种方式 制作 斜体版本 是不是有什么文件我
  • Python win32com - 自动化 Word - 如何替换文本框中的文本?

    我正在尝试使用 Python 自动化 Word 来替换 Word 文档中的文本 如果重要的话 我使用的是 word 2003 和 Python 2 4 下面我的替换方法的第一部分适用于除文本框中的文本之外的所有内容 文本只是没有被选择 我注
  • 将数组映射到 Symfony2/Doctrine2 中的实体

    我正在使用 DoctrineFixtures 包在开发过程中创建示例实体 在我的 ORM 装置 load 方法中 我将数据定义为关联数组并在循环中创建实体对象
  • 用于匹配编号大于的类的 CSS 选择器

    我有一个使用 Sencha Touch 2 开发的移动混合应用程序 需要根据其运行的 iOS 版本进行一些自定义 我的 Sass 样式表中曾经有以下选择器 x ios 7 put here iOS7 customizations 现在 iO
  • 换行符 unicode 字符

    我想要一个可用于表示新行的 Unicode 字符 我以前见过它 但通过我尝试过的任何谷歌搜索都找不到它 它看起来像这样 lt 有几种可能性 选择也可能取决于字体 因为并非所有字体都适用于所有字体 并且其中一些具有相当不同的形状 并且有些在小
  • 类型错误:无法读取 null 的属性(读取“useRef”)

    我正在使用 Next js TypeScript sanity 和 tailwindcss 我尝试使用react hook form 但收到错误 我试过了 改变Post函数到箭头函数 改变Post函数到 const 函数 改变IFormIn
  • Gradle fileTree 排除除某些目录之外的所有目录

    我正在使用 fileTree 实用程序来获取文件列表 但需要排除除列表中选定的几个目录之外的所有目录 我的目录结构 node modules react native react third party package another pa
  • 如何将颜色条添加到已有的绘图图形中?

    我有以下图表 其数据 位置和颜色值 来自外部源 import plotly graph objs as go from plotly offline import init notebook mode iplot data go Scatt
  • 如何读取箭头镶木地板键值元数据?

    当我在 R 和 Python 中保存 parquet 文件 使用 pyarrow 时 我得到一个保存在元数据中的箭头模式字符串 如何读取元数据 是Flatbuffer编码的数据吗 模式的定义在哪里 它没有在箭头文档网站上列出 元数据是一个键
  • 错误:“主机标识符中存在双冒号”

    我正在尝试连接到我在 MLab 托管的数据库 我正在使用 StrongLoop API 我已将托管数据库的配置信息放入 datasources json 和 config json 文件中 但每当我使用以下命令运行目录时npm start
  • 是否存在用于将 C++ 代码移植到 64 位的自动转换工具?

    我正在研究将大量 gt 10M 行 C 代码移植到 64 位的方法 我已经研究了静态代码分析器和编译器标志 现在正在研究可以进行常见的重复更改的宏或其他工具 我写了一些正则表达式来看看它们在实践中的效果如何 正如预测的那样 它们非常有效 也
  • 如何在更改屏幕方向android时保留回收器视图的选定项目?

    我想在屏幕方向改变时保留 RecyclerView 所选项目的状态 但每当我更改方向时 所选项目不会保留其状态 所以我保存所选项目的位置和方向变化onResume 我获取了位置 并通过使用 RecyclerView 的 getChildAt
  • 使用变量作为关键字来分配关键字参数的最 Pythonic 方式?

    What is 最Pythonic的方式解决以下问题 从交互式 shell 中 gt gt gt def f a False if a return a was True return a was False gt gt gt f a Tr