所以最近我了解到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