网站建设资讯

NEWS

网站建设资讯

python函数返回id Python函数返回一个列表

python冷知识——id()函数

在工作中遇到一个项目的陈年老bug,如图:

成都创新互联公司专注于企业全网营销推广、网站重做改版、徐汇网站定制设计、自适应品牌网站建设、成都h5网站建设商城系统网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为徐汇等各大城市提供网站开发制作服务。

bug原因是这里本应该传idx,结果传成了id。

但是这里最有意思的地方来了。

从截图可以看出,这个id并不是入参,也没有定义过,那他直接用怎么不会报参数未定义的语法错误呢?按说函数应该执行不了直接报错,但是实际上整个方法可以执行不会报错。

排查import也没有import id,也没有定义全局变量。那么这个id变量没有在任何地方定义,为什么可以直接使用呢,还不会报语法错误?

经过查阅资料才发现,id在这里其实 不是一个变量,而是一个函数!

查看官方文档可以看到:

所以id()本身是python内置的一个函数,但是因为很少用到,所以很多人并不太清楚。

python里怎么知道a的id

用id()函数当a,b为2的时候id相同,而为2.5的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会。

id()函数用于获取对象的内存地址。语法id([object]),返回对象的内存地址。对于字符串、整数等类型,变量的id是随值的改变而改变的。

id(object)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。

Python中id函数为什么会对不同对象返回相同值

如果那两个对象指向的是相同的内存地址,也就是说内部指向的其实是一个对象,那他们的ID返回值就是一样的。

python中id有返回值吗

看具体情况。

函数需要先定义后调用,函数体中return语句的结果就是返回值。

如果一个函数没有return语句,其实它有一个隐含的语句,返回值是None,类型也是'None Type'。print( )只是起一个打印作用,函数具体返回什么由return决定。

python id函数的输出值问题

id方法的返回值就是对象的内存地址。

python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:

a=2.0

b=2.0

a is b

False

a==b

True

但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:

a=2

b=2

a is b

True

如果赋值的不是2而是大的数值,情况就跟前面的一样了:

a=5555

b=5555

a is b

False

id(a)

12464372

id(b)

12464396


分享名称:python函数返回id Python函数返回一个列表
转载注明:http://cdweb.net/article/hjoegc.html