全球主机交流论坛

标题: python大佬 求助 [打印本页]

作者: wki2012    时间: 2018-8-27 09:18
标题: python大佬 求助
        最近在学习python///

        刚看到运算符。  是关于一个函数  id()
        
         下面附图
   

  

id(a) is id(b)

为什么结果是false。。内存地址明明是一样的
作者: Nya    时间: 2018-8-27 09:23
https://docs.python.org/3.7/reference/expressions.html#is

id(a)的处理结果和id(b)的处理结果并不是同一个。
你可以试 id(a) is id(a)

作者: 爱纯粹    时间: 2018-8-27 09:31
明明是两个变量,怎么就一样了
作者: wki2012    时间: 2018-8-27 09:33
Nya 发表于 2018-8-27 09:23
https://docs.python.org/3.7/reference/expressions.html#is

id(a)的处理结果和id(b)的处理结果并不是同 ...

试了下,,确实 id(a) is id(a) 结果也是false。脑壳痛,正在搜索资料
作者: 成都第七帅    时间: 2018-8-27 09:33
is比较是的变量的id
你这句代码:Id(a) is Id(b)相当于  Id(Id(a)) == Id(Id(b))
作者: wki2012    时间: 2018-8-27 09:35
成都第七帅 发表于 2018-8-27 09:33
is比较是的变量的id
你这句代码:Id(a) is Id(b)相当于  Id(Id(a)) == Id(Id(b))

大佬 一语惊醒梦中人。。感谢
作者: Nya    时间: 2018-8-27 09:41
wki2012 发表于 2018-8-27 09:33
试了下,,确实 id(a) is id(a) 结果也是false。脑壳痛,正在搜索资料

你实际算的是 Object(id(a)) is Object(id(b)), 每次查询id返回的Object都不一样。id(a) is id(b)就不是正确用法。你应该用 id(a) == id(b).
作者: wki2012    时间: 2018-8-27 09:47
Nya 发表于 2018-8-27 09:41
你实际算的是 Object(id(a)) is Object(id(b)), 每次查询id返回的Object都不一样。id(a) is id(b)就不是 ...

发现了。。。感谢提醒




欢迎光临 全球主机交流论坛 (https://hostloc-workers.ikyomon.com/) Powered by Discuz! X3.4