【发布时间】:2019-10-05 19:42:33
【问题描述】:
我创建了一个名为translate(x) 的函数。在这个函数之外,我创建了一个名为korean 的变量。我想使用vars()[] 函数调用我的korean。但是,没有成功编译,而是发生了错误。
korean = 'ko-KR'
lgf = 'korean'
def translate(x):
lgfn = vars()[x]
return lgfn;
translate(lgf)
我以为输出会是'ko-KR',但是编译后它返回一个keyError: 'korean'
【问题讨论】:
-
你为什么要这样做?这里不需要使用
vars(很少使用)。在任何情况下,您都将 字符串'korean'传递到您的函数中,并用于键入vars返回的字典。这不在局部变量中,所以你得到了关键错误。 -
更好地使用字典
language = { 'korean': 'ko-KR'}然后你可以做return language[x]。不推荐使用vars()。 -
函数
vars(),当不带参数调用时,等价于locals()。
标签: python python-3.x function variables