function在python_在Python中,“<function at…>”是什么意思?

每个对象都有一个方法obj.__repr__( )

调用时,此方法返回一个字符串对象,该对象是对象的“正式”可打印表示形式obj

当Python解释器遇到

脚本中的一行print obj

或者在命令行中>>> obj,

调用对象的方法__repr__( ),并在屏幕上显示返回的代表字符串的值。

对象的repr方法可以通过使用内置函数repr( )以对象的名称作为参数来专门调用,以便将repr返回的字符串赋给标识符,从而能够对此表示执行操作。

只有在Python1和Python2中,对象名称周围的反引号与对其调用repr( )具有相同的效果。

比较:def main():

pass

if '__repr__' in dir(main):

print ('__repr__ is a method of main\n')

else:

print ('main has no method __repr__\n')

print ('main : %s\n'

'type(main) == %s\n'

% (main,type(main)) )

print ('repr(main) : %s\n'

'type(repr(main)) == %s'

%(repr(main),type(repr(main))) )

# Only in Python 1 and Python 2, string conversions with

# reversed quotes produce the same result as repr():

print ('\n`main` : %s\n'

'type(`main`) == %s'

% (`main`,type(`main`)) )

结果__repr__ is a method of main

main :

type(main) ==

repr(main) :

type(repr(main)) ==

是的。

在中,部分0x00FB2930表示对象的内存地址(这里是一个函数),即引用对象在RAM中的位置的整数。

0x00FB2930是一个hexinteger,即表示基16中的内存地址值的文本。

这个内存地址正是由内置函数id()返回的,它的值被打印为decimalinteger文本,也就是说,它以基数10表示。print ('repr(main) : %s\n'

'type(repr(main)) == %s\n'

% (repr(main),

type(repr(main))) )

hex_address = repr(main)[18:-1]

print ('hex_address = repr(main)[18:-1] defined\n'

'hex_address : %s\n'

'type(hex_address) == %s\n'

'int(hex_address , 16) : %s\n'

'type(int(hex_address , 16)) : %s\n'

% (hex_address,

type(hex_address),

int(hex_address , 16),

type(int(hex_address , 16))) )

print ('id(main) : %s\n'

'type(id(main)) == %s\n'

'hex(id(main) : %s\n'

'type(hex(id(main)) : %s'

% (id(main),

type(id(main)),

hex(id(main)),

type(hex(id(main)))) )

结果repr(main) :

type(repr(main)) ==

hex_address = repr(main)[18:-1] defined

hex_address : 0x00FB2930

type(hex_address) ==

int(hex_address , 16) : 16460080

type(int(hex_address , 16)) :

id(main) : 16460080

type(id(main)) ==

hex(id(main) : 0xfb2930

type(hex(id(main)) :

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值