请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何解释:type(1) is int 是True ,从内存地址角度

老师好,如题:如何解释:type(1) is int 是True ,从内存地址角度

正在回答

2回答

7七月 2020-01-24 16:28:06

python里一切皆对象,type(1)的类型是int这是个对象,当然是true

1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉43596301 #1
    >>> id(type(int))
    140718266542096
    >>> id(type(1))
    140718266531088
    
    这个是不是不能从内存地址的角度解释啊?
    回复 有任何疑惑可以回复我~ 2020-01-24 18:17:58
  • 7七月 回复 提问者 慕粉43596301 #2
    1是个对象,int也是对象 这是两个对象
    回复 有任何疑惑可以回复我~ 2020-01-24 18:24:56
  • 提问者 慕粉43596301 回复 7七月 #3
    明白了。
    type(1)=<class 'int'>
    type(int)=<class 'type'>
    id(int)=140718743895312
    id(type)=140718743906320
    回复 有任何疑惑可以回复我~ 2020-01-24 21:19:28
One2469170 2020-01-24 14:33:11

type(1) 得到的结果也是int, int和int在内存里的id是相同的,你用id打印一下就知道了。

从数据类型来分类

int,str,set相同的值会得到相同的id

list, dict, tuple 相同的值会得到不同的id

没有得到比较术语话的测试结果,插个旗,等老师回答。

测试结果:

>>> id(1)

1545725872

>>> id(1)

1545725872


>>> id('a')

16988096

>>> id('a')

16988096


>>> id((1,2))

10017448

>>> id((1,2))

9985640


>>> id([1,2])

56476456

>>> id([1,2])

56475816


>>> id({1,2,3})

62435080

>>> id({1,2,3})

62435080


>>> id({'a':1,'b':2})

9989568

>>> id({'a':1,'b':2})

9988648


1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉43596301 #1
    >>> id(type(int))
    140718266542096
    >>> id(type(1))
    140718266531088
    
    新年好。
    你说的是这样取id吗?
    回复 有任何疑惑可以回复我~ 2020-01-24 18:18:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信