gpt4 book ai didi

带空格的 Python 方法参数

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:29 30 4
gpt4 key购买 nike

我想创建一个简单的文件格式/DSL,允许我的用户输入数据。我的系统在 python 中,使用 python 的解析器很有吸引力。像这样定义数据元素的语法似乎很方便。

Allocation(Param1 = Val1, Param2 = Val2 )

但是,它不支持带空格的参数名称。

Allocation(Param 1 = Val1, Param 2 = Val2 )

Python 解析器友好版本可能如下所示,但对用户来说不是很友好。

Allocation(("Param 1",Val1), ("Param 2",Val1) )
Allocation(**{"Param 1":Val1, "Param 2":Val1} )

有没有办法让它在 python 中更具可读性?

最佳答案

我想会有某种方法可以做到这一点。但我不得不问,这在可读性上真的有足够大的差异吗

Allocation(Param1 = Val1, Param2 = Val2 )

对此:

Allocation(Param 1 = Val1, Param 2 = Val2 )

有那么大的不同吗?我确信有一种方法可以做您想做的事,但我首先关心的是所付出的努力是否值得。

my goal is to provide a DSL which can be used for data entry into the system. In the above scenario, params would be people names and values would be percentages.

我现在对你想要做什么有了更好的理解,但我仍然认为你最终可能不得不牺牲一些可读性来获得你想要的东西。就个人而言,我会选择类似的东西:

Allocation(
{ 'name1' : value1,
'name1' : value2, }
)

如果这不是您可以使用的东西,那么您可能需要重新考虑是要将 Python 用于 DSL 还是使用自己开发的东西。对于大多数编程语言来说,允许空格会产生太多歧义。

如果您仍想通过使用 Python 来实现这一点,您可能需要考虑发布到 C-API SIG ( SIGS ) 或者 python-dev list (作为最后的手段)。我能看到做到这一点的唯一方法是将 python 解释器嵌入到 C/C++ 程序中,并用它做一些黑客攻击(这可能很困难!)。

关于带空格的 Python 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/351760/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com