如何查找函数所有 **args 的列表?

2024-02-15

我怎样才能找到所有的列表**args一个函数的?

例如,我知道symbols() take positive=True, real=True等作为参数,我想查看这些可能参数的完整列表。 但是,它们没有列在 Sympy Core 中doc page http://docs.sympy.org/latest/modules/core.html#sympy.core.symbol.symbols.

我已经挖掘了源代码本身,但我无法跟踪和定位我正在寻找的内容。


symbols()功能

正如其他答案所指出的 - 一种用途**args in the symbols是传递关于Symbol正在被创建。您可以通过的假设列表记录在假设 http://docs.sympy.org/dev/modules/assumptions/index.html页面为支持的谓词 http://docs.sympy.org/dev/modules/assumptions/index.html#supported-predicates.

However,您还应该注意可以传入一些其他特殊的命名参数。

这些都记录在您链接的部分中,并且是:

  1. cls=<ClassName>

    尽管它的名字如此,symbols() 可以创建类似符号的对象,例如 Function 或 Wild 类的实例。要实现此目的,请将 cls 关键字参数设置为所需的类型:

    注意:如果没有指定,则默认Symbol使用类。

  2. seq=<True|False>

    文档说:

    如果单个符号需要可迭代容器,请设置seq论证True或以逗号终止符号名称

代码步行

您注意到您已经浏览了代码 - 因此我将向您展示这些代码在代码中的实现位置。如果您致电symbols() https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L86函数时,它对其参数进行各种检查,包括pop-ing cls and seq https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L86论点来自**args然后它执行更多检查等,最后调用实例化Symbol here https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L476, here https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L513 or here https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L515。这些调用了构造函数Symbol(或其子类通过via传入cls)与剩下的任何东西**args都被解释为assumptions在构造函数中。 https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L91- 他们是sanitized here https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L101即非假设或不适用的命名参数是抛出 https://github.com/sympy/sympy/blob/sympy-0.7.6/sympy/core/symbol.py#L86在此刻!

这表明假设 +cls + seq形成可以传入的命名参数集**args to symbols()


其他功能(一般情况)

我想到symbols()可能只是作为一个更普遍的问题的代表性例子。我希望以上内容已经让您相信所有可以有效传递的值symbols()被记录下来。这可能会让您确信 SymPy 中的其他函数也是如此。

然而,在一般情况下,答案是很难向自己证明所有可以作为关键字参数传入的值都在文档中any库或函数。事实上,有时只故意记录一个子集,因为它们是库的“公共 API”,而实际代码可能采用其他参数,但出于某种原因,开发人员不想将它们公开给公众 - 例如因为它们的可用性可能会改变,或者它们的功能未经测试。

If you do传入无效参数,您正在使用的库的行为可能会有所不同。一些库或函数会忽略它们,而另一些库或函数会在您传递无效的关键字参数时抛出错误。

如果您想了解是否是这种情况(并且该库是开源的,例如 SymPy),那么您可以随时深入研究代码(如我在上面的代码步行中所示)。如果你这样做 - 你需要遵循执行路径,寻找出现的情况args.pop()。如果您关心 SymPy 中的其他函数,请在评论中告诉我 - 但希望这个通用方法对您有用。

我假设您了解上面的内容*args and **args句法。如果您不完全清楚 - 这一部分python官方教程 https://docs.python.org/3/tutorial/controlflow.html#keyword-arguments我来处理它。

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

如何查找函数所有 **args 的列表? 的相关文章

随机推荐

  • Zapier 操作代码:Python input_data[] 从列表中剥离空值

    我一直在尝试使用 Python 为 Zapier 创建自定义代码 该代码从 Magento 2 发票中提取两个列表 它们是行项目的详细信息 我们使用这些数据来更新库存系统上的库存 不幸的是 捆绑产品显示了子产品 我需要将子产品的数量清零 这
  • R8 的 firebase 中的循环引用错误

    我们在使用 Firebase 和 R8 时遇到以下错误 CIRCULAR REFERENCE java lang IllegalArgumentException java lang IllegalArgumentException Mul
  • NSDateFormatter 问题

    我正在使用以下代码来获取当前时间 NSDate myDate NSDate date NSDateFormatter dateFormatter NSDateFormatter alloc init dateFormatter setTim
  • 如何从开源 Hadoop 或公开可用的 HDP 源代码构建由 ambari 安装的 deb/rpm 存储库

    我正在尝试安装开源 hadoop 或从源代码构建 HDP 以由 ambari 安装 我可以看到 可以使用 apache repos 中提供的文档为每个组件构建 java 包 但是我如何使用这些包来构建由 hortonworks 提供的 rp
  • Oracle 查询给出错误

    我正在蟾蜍中运行以下查询来测试结果 但出现错误 ORA 00933 SQL 命令未正确结束 这是我的查询 SELECT DISTINCT sv mkey vehicle no ABC isnullcheck TO CHAR date in
  • 拦截Python中的方法调用

    我正在用 python 实现 RESTful Web 服务 并希望通过拦截函数调用并记录其执行时间等来添加一些 QOS 日志记录功能 基本上我想到了一个所有其他服务都可以继承的类 它自动覆盖默认方法实现并将它们包装在记录器函数中 实现这一目
  • 泛型方法枚举到字符串的转换

    我见过很多使用泛型将字符串转换为枚举的方法 但找不到使用泛型将枚举转换为字符串的巧妙方法 我的意思是传递一个枚举和一个值并返回枚举的映射名称 有什么建议 怎么样 enum E A 2 B 3 public static string Get
  • 使用持久函数,如何从活动函数返回多个值

    我是领域驱动设计的忠实粉丝和开发人员 并且总是尝试将技术 架构映射到 DDD 的世界中 将微服务映射到有界上下文提供了自然的结合 归根结底 我只想专注于我的业务逻辑并将其托管在正确的环境中 Durable Functions 对我来说看起来
  • MEF ComposeParts。如何处理插件异常

    我在网上搜索了解决方案 但没有找到任何结果 在我的 C 应用程序中 我使用 MEF 来实现插件模式 一切正常 然而今天我试图弄清楚如果插件构造函数由于某种原因抛出异常会发生什么 加载我正在使用的插件CompositionContainer
  • Tomcat 7 - 在运行时获取应用程序名称,无需通过java-agent/aspectj登录

    我正在尝试获取所有已部署应用程序的列表 特别是映射到 tomcat root 的应用程序名称 我希望能够在运行时使用 java 代理来收集 tomcat 服务器上的信息 我尝试使用这个代码示例 private Iterable
  • R CMD 检查不尊重 knit 代码块中的选择性代码评估

    我正在构建一个包R 3 1 0 on Windows7 32 位 以及运行 Windows 8 64 位的另一台机器上 我正在使用knitr使用 Markdown 编写小插图 我希望在 CRAN 上发布这个包 所以我使用 R CMD 检查来
  • 用纯 C 在 atmega328 上设置中断

    我目前正在开发 Arduino Uno 板 并尝试用纯粹的语言编写它C无需使用 Arduino 的库 我正在工作的项目应该像这样工作 设置 LEDPB0 to BP7 ON and OFF 在连接到按钮的 PD2 上设置中断 按下按钮时 L
  • MaximumSelectionSize 在 Select2 中不起作用

    我有一个多值选择 我想使用select2图书馆 文档 http select2 github io select2 maximumSelectionSize说我应该设置maximumSelectionSize在对象初始化期间 不幸的是 下面
  • 如何在 C# 中监视剪贴板更改?

    是否有我可以通过 C 访问的剪贴板更改或更新事件 为了完整起见 这是我在生产代码中使用的控件 只需从设计器中拖动并双击即可创建事件处理程序 using System using System ComponentModel using Sys
  • Angularjs:如何使用 ng Mousedown ng Mouseup

    是否可以使用 ngMousedown 将类添加到 div 并使用 ngMouseup 再次删除类 目前我使用ng mousedown activateClass 在 activateClass 中更改 scope className 数据活
  • 如何从 ruby​​ 脚本引用本地 gem?

    我需要从普通的 ruby 脚本引用本地 gem 而不安装 gem 追寻着如何在 ruby 中引用本地宝石 https stackoverflow com questions 6444827 how to refer a local gem
  • 在闪亮的表格中嵌入链接

    我想用闪亮的形式创建一个表格 以便表格的每个元素都是指向新页面的超链接 但新页面 由闪亮创建 知道单击了哪个单元格 例如 我单击单元格 i j 这会将我带到一个新页面 其中包含基于我选择的 i 和 j 值的绘图 我可以使用 php 和 或
  • Facebook 和 Google+ 登录

    我在我的应用程序中同时使用 Google 和 Facebook 我的问题是它们都需要 appDelegate 中的 OpenURL 方法 对于 Facebook 登录 func application application UIAppli
  • for() 函数中的“:”

    我正在做一项涉及董事会的作业 给出了基础代码供我们修改 但我不明白其中的内容 在 for 方法的参数中 它是否通过了所有的板子 ArrayList private ArrayList
  • 如何查找函数所有 **args 的列表?

    我怎样才能找到所有的列表 args一个函数的 例如 我知道symbols take positive True real True等作为参数 我想查看这些可能参数的完整列表 但是 它们没有列在 Sympy Core 中doc page ht