python SHELL命令下 使用id函数的打印和print有什么不同?

>>> print id(ord('A'))
32014688
>>> id(65)
32014688L
>>> print id(65)
32014688

图片描述

阅读 4.1k
4 个回答
>>> print(id(ord('A')))
1807310096
>>> id(65)
1807310096
>>> print(id(65))
1807310096
>>> 

发上来的时候可能排版会出现问题,但是我这里的ID都是一样的

在python2中,整数类型有整数长整数之分,整数末尾的L就表示长整数,整数和长整数在使用上并没有什么区别,python会自动进行类型转换。因此,在python3中,整数类型就被统一为长整数。

你知道格式化字符串的时候%s和%r的区别吧?

class A(object):
    def __str__(self):
        return "A"
    def __repr__(self):
        return "object A"
a = A()

print函数打印对象(例如class A(object))的时候是默认使用对象的__str__方法

>>>print a
A
>>>print "%s" % a
A

直接在shell里面输出的话就是调用__repr__方法,类似于使用"%r"

>>>a
object A
>>>print "%r" % a
object A
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题