当前位置:  开发笔记 > 编程语言 > 正文

在Python中间接调用内置运算符

如何解决《在Python中间接调用内置运算符》经验,为你挑选了1个好方法。

假设您有一个小型计算器程序,它接受数字和操作员对这些数字作为输入执行,然后打印出应用指定操作的结果.因此,如果您输入"4 + 5",它将打印出"9".简单吧?那么我想要写的是这样的:

a, op, b = raw_input().split()
print somehowInvokeOperator(op, a, b)

问题是"somehowInvokeOperator()"部分.无论如何要做到这一点,而不是诉诸(a)eval()或(b)某些类型的字典映射键,如"+"和" - "到执行适当操作的函数?getattr()似乎不适用于此.我真的不需要这个代码,我只是很想知道这是否可以像在其他动态语言中一样优雅地在Python中解决.



1> David Z..:

基本上没有,你至少需要一个字典或函数来将运算符字符映射到它们的实现.它实际上比这复杂一点,因为并非所有运算符都采用这种形式a [op] b,所以通常你需要做一些解析; 有关对应的完整列表,以及您可能希望用于运算符实现的函数,请参阅https://docs.python.org/library/operator.html.

如果您只是尝试实现像+ - */%**这样的二进制算术运算符,那么字典应该足够好了.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有