<function at =“”... =“”>是什么意思

时间:2016-10-18 01:48:38

标签: python function python-3.x

以下是代码:

def my_func(f, arg):
  return f(arg)

print((lambda x: 2*x*x, (5)))

>>>(<function <lambda> at 0x10207b9d8>, 5)

如何解决错误,有些人可以用清晰的语言解释错误的确切含义。

1 个答案:

答案 0 :(得分:2)

没有错误;您只需向printlambda x: 2*x*x5提供两个参数。你不是在调用你的匿名函数,只是把它传递给print

print然后会调用对象__str__方法,该方法会返回您看到的内容:

>>> str(lambda x: 2*x*x)  # similarly for '5'
'<function <lambda> at 0x7fd4ec5f0048>'

相反,修改括号实际调用 lambda,5作为x的值传递:

print((lambda x: 2*x*x)(5))

打印出50

  

<function at 0x ...>的一般含义是什么?

这就是Python在打印时选择表示函数对象的方式。他们的str获取函数的名称和函数hex的{​​{1}}并将其打印出来。 E.g:

id

通过返回字符串创建:

def foo(): pass
print(foo) # <function foo at 0x7fd4ec5dfe18>