小编Bug*_*mon的帖子

在这种情况下,不使用带字典的eval()更好的方法吗?

下面的两个函数对两个整数执行算术运算并返回整数结果.

我听说很多关于eval()的使用非常糟糕,因为它会导致很多问题.但是看看下面我写的代码,看起来eval()可以省去很多行代码,对吧?

def dict_calculate(operation, num1, num2):
    operations = {'add': '+', 'subtract': '-', 'multiply': '*', 'divide': '//'}
    return eval(str(num1) + operations[operation] + str(num2))

def conditional_calculate(operation, num1, num2):
    if operation == 'add':
        return num1 + num2
    if operation == 'subtract':
        return num1 - num2
    if operation == 'multiply':
        return num1 * num2
    if operation == 'divide':
        return num1 // num2

if __name__ == "__main__":
    x = 10
    y = 5

    print(str(dict_calculate('add', x, y)) + ', ', end='')
    print(str(dict_calculate('subtract', x, y)) + ', …
Run Code Online (Sandbox Code Playgroud)

python dictionary eval

0
推荐指数
1
解决办法
36
查看次数

标签 统计

dictionary ×1

eval ×1

python ×1