gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:52:12 24 4
gpt4 key购买 nike

假设您有一个小型计算器程序,它以数字和一个运算符作为输入对这些数字执行操作,然后打印出应用指定运算的结果。因此,如果您输入“4 + 5”,它将打印出“9”。简单吧?好吧,我想写的是这样的:

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

问题是“somehowInvokeOperator()”部分。有没有办法在不求助于 (a) eval() 或 (b) 某种类型的字典映射键(如“+”和“-”)到执行适当操作的函数的情况下做到这一点? getattr() 似乎不适用于此。我真的不需要这段代码来做任何事情,我只是想看看这是否可以像在其他动态语言中一样优雅地在 Python 中解决。

最佳答案

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

如果您只是想实现像 + - */% ** 这样的二元算术运算符,那么字典就足够了。

关于python - 在 Python 中间接调用内置运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542987/

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