绑定到函数名的数字

时间:2011-12-07 19:36:24

标签: python

有代码:

def somefun():
    print "hi"
print somefun

结果是:

<function somefun at 0x0153DDF0>

什么是0x0153DDF0?

2 个答案:

答案 0 :(得分:7)

这是对repr的调用的结果 - 有问题的数字是内存中函数的地址。

根据the doc for repr

  

[...]表示是一个括在尖括号中的字符串,其中包含对象类型的名称以及其他信息,通常包括对象的名称和地址

(强调我的)

您还会发现这是拨打hex(id(somefun))

时返回的号码

注意 - 这是内存中的地址是CPython的实现细节,不应该依赖它。有关详细信息,请参阅the doc for id

答案 1 :(得分:0)

如果您只需要一个功能名称,则可以使用以下内容:

>>> print somefun.func_name
somefun
>>> print somefun.__name__ 
somefun