eval(dir()[0])在python中做什么

时间:2018-08-27 20:19:25

标签: python python-3.x python-2.7 dictionary eval

我遇到了python程序的解决方案,但是即使搜索后我也无法理解它的作用。有人可以向我解释一下此声明的作用。

node.data

1 个答案:

答案 0 :(得分:4)

函数dir在不带参数的情况下返回时,将返回所有局部变量的名称,类似于def f(y): print(dir()) # prints ['y']

dir()[0]

然后,显然eval(dir()[0])是第一个局部变量的名称,def f(y): print(dir()) # prints ['y'] print(dir()[0]) # prints 'y' print(eval(dir()[0])) # prints the value of y 评估变量名称,即返回第一个局部变量的值。

>>> f(77)
['y']
y
77
>>> f([1,2,3])
['y']
y
[1, 2, 3]

例如:

>>> for result in map(str.upper, ['foo', 'bar', 'baz']):
...     print(result)
...
FOO
BAR
BAZ

函数map调用第一个参数(必须是可调用的)以及第二个参数中的每个值(必须是可迭代的),并生成结果,例如

first_variable

将它们组合在一起,并假定第一个局部变量是一个名为a, b, c = map(numpy.array,eval(dir()[0])) 的列表,然后执行以下代码:

a, b, c = first_variable
a = numpy.array(a)
b = numpy.array(b)
c = numpy.array(c)

将与此代码相同:

CALL apoc.import.csv(
  [{filename: 'file:/<path>/persons.csv', labels: ['Person']}],
  [{filename: 'file:/<path>/knows.csv', type: 'KNOWS'}],
  {delimiter: '|', arrayDelimiter: ',', stringIds: false}
)