在使用eval()编写代码时,是否应该使用f-string

所以最近我了解到eval()是一个令人惊讶的函数,它可以将字符串转换为代码命令,当编写一个参数是函数名称的字符串的函数时,它可能非常有用。

但我想知道使用它的更具蟒蛇色彩的方式是什么。示例:

a = [1,2,3,1,2,3,4,1,2,5,6,7]
b = 'count'
target = 2
# regular way
print(a.count(target))  # >>> 3

我试着用f-string来写,这是可行的:

print(eval(f'{a}' + '.' + b + f'({target})'))  # >>> 3

令我惊讶的是,即使我不使用f-string,它也能正常工作:

print(eval('a' + '.' + b + '(target)'))  # >>> 3

这对我来说是一个小小的疑问,因为如果没有f- string,'a‘可能会令人困惑,很难区分这是一个字符串还是一个伪装成字符串的变量。

不知道你们是怎么想的?哪一个对你来说更像蟒蛇?

谢谢!

转载请注明出处:http://www.gztaineng.com/article/20230526/943428.html