2024-05-14 15:42:11 发布
网友
我正在用Python构建表单验证的DSL,其中一个要求是能够指定一个字段应该大于或小于一个常量或另一个字段值。因此,我尝试将<、>、<=和{}等运算符映射到operator模块中的等效函数,以便在字段验证期间调用它们。在
<
>
<=
operator
我意识到我可以创建一个字典来将运算符映射到函数,但是有没有更好的方法来实现呢?有什么方法可以访问Python的内置映射吗?在
Python从“<;”到__lt__(等等)的内部映射不会在标准库中的任何地方公开。Python的内部有很多没有作为工具箱公开。我甚至不确定如何创建这样一个映射。什么映射到__getitem__?在
__lt__
__getitem__
您只需创建自己的映射即可。应该不难。在
据我所知,没有内置字典将字符串">"映射到函数operator.lt,等等
">"
operator.lt
正如其他人所指出的,Python解释器本身并没有使用这样的字典,因为解析和执行Python代码的过程将首先将字符序列“>;”转换为表示该运算符的标记,然后将其转换为字节码,执行该字节码的结果将执行__lt__方法,而不是通过operator.lt函数。在
Python从“<;”到
__lt__
(等等)的内部映射不会在标准库中的任何地方公开。Python的内部有很多没有作为工具箱公开。我甚至不确定如何创建这样一个映射。什么映射到__getitem__
?在您只需创建自己的映射即可。应该不难。在
据我所知,没有内置字典将字符串
">"
映射到函数operator.lt
,等等正如其他人所指出的,Python解释器本身并没有使用这样的字典,因为解析和执行Python代码的过程将首先将字符序列“>;”转换为表示该运算符的标记,然后将其转换为字节码,执行该字节码的结果将执行
__lt__
方法,而不是通过operator.lt
函数。在相关问题 更多 >
编程相关推荐