我们正在考虑使用Python(IronPython,但我认为这不相关)为另一个控制一台设备的应用程序提供了一种“宏”支持。为Python函数参数提供额外装饰/元数据的好方法是什么?
我们想用Python语言编写相当简单的功能,这需要几个参数 - 这些将是一样的东西时间和温度和位置。不同的函数需要不同的参数,主应用程序将包含用户界面(类似于属性网格),它允许用户为Python函数参数提供值。
因此,例如功能1可能需要一段时间和温度,以及函数2可能采取的位置和几次。
我们希望能够从Python代码中动态构建用户界面。很容易做的事情是在模块中找到函数列表,并使用inspect.getargspec来获取每个函数的参数列表。
但是,只是一个参数名称列表不够理想 - 理想情况下,我们希望能够包含关于每个参数的更多信息 - 例如,它是'type'(高级类型 - 时间,温度等等,而不是语言级别的类型),也可能是一个“友好名称”或描述。
所以,问题是,什么是将这种信息功能的好“Python化”的方式。
两种可能性我以为是:
使用参数的严格的命名约定,然后从它们的名字推断出他们的东西(使用getargspec牵强)
创造我们自己docstring元语言(可能比CSV稍微多一点)并使用文档字符串作为我们的元数据。
因为Python似乎为构建脚本到大型应用很受欢迎,我想这是一个解决的问题有一些共同的约定,但我一直没能找到他们。
,您可以使用函数注释:http://www.python.org/dev/peps/pep-3107/ – unutbu 2010-08-31 16:25:26
py.test使用您提到的为每个测试指定数据的第一种方法。他们的情况很好。 – 2010-08-31 16:27:03