python - 如何在python中获取另一个函数的预期参数?
问题描述
我想知道给定一个函数(作为实例或字符串)是否有可能获取其参数,是否为每个参数定义了默认值,如果可能,每个参数的类型(可能使用类型默认值,如果已定义)在 Python 3.5 中。
你为什么要那个?!
长话短说,我正在生成一个 XML 文件,其中包含我项目中不同功能的详细信息。由于生成器必须是面向未来的,以防有人修改、添加或删除函数,因此必须更新下一个生成的文件。我成功地检索了我想要的函数作为实例或调用它的代码字符串。
我有两个解决方案(嗯,更多解决方案的开始)来解决这个问题,使用inspect
and jedi
。
检查
使用inspect.signature(function)
,我可以检索所有参数的名称和默认值。我在这里看到的主要问题是分析这个函数:
def fct(a=None):
# Whatever the function does...
分析默认值的类型会导致误解。有没有办法解决这个问题?
绝地
绝地是一个非常强大的工具,甚至可能太多了!在一行代码字符串中获取函数,并通过 Jedi 对其进行分析,提供了大量的信息,老实说,我迷失了这些信息。另外,我可能会得到糟糕的自动完成(例如:我可能会自动完成而不是为 提供print
参数println
)
如果有人为此目的使用了这些工具之一,或者如果您知道更好、更“pythonic”的方法,我将非常感激!
解决方案
推荐阅读
- reactjs - 在一个组件中使用 formik-material-ui TextField 和 material-ui TextField 时出现“警告:Prop `className` 不匹配...”
- amazon-web-services - Aws Route 53 - 如何将子域保留在多个 aws 帐户中?
- php - htaccess 重定向子域和所有链接
- sql - 透视数据 T-SQL
- c# - Entity Framework Core 多对多与链接表(连接实体)
- python - 将 boto3 与 kivy-ios 一起使用
- amazon-web-services - aws_wafv2_rule_group 与 aws_wafregional_rule_group
- azure-active-directory - 使用 AADB2C 对 Graph API 的 ASP Net Core API 下游调用
- typescript - 我的 eslint 似乎识别不正确的 tsconfig
- javascript - css - 如何使 div 具有特定的纵横比