程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python-“=”和“is”有区别吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python-“=”和“is”有区别吗??

开发过程中遇到Python-“=”和“is”有区别吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于Python-“=”和“is”有区别吗?的解决方法建议,希望对你解决Python-“=”和“is”有区别吗?有所启发或帮助;

如果两个变量指向同一个对象,则返回True;如果变量引用的对象相等,则返回=

>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True

# Make a new copy of List `a` via the slice operator, 
# and assign it to variable `b`
>>> b = a[:] 
>>> b is a
false
>>> b == a
True

你的例子中,第二个测试只起作用,因为Python缓存小整数对象,这是一个实现细节。对于较大的整数,这不起作用:

>>> 1000 is 10**3
false
>>> 1000 == 10**3
True

字符串文本也是如此:

>>> "a" is "a"
True
>>> "aa" is "a" * 2
True
>>> x = "a"
>>> "aa" is x * 2
false
>>> "aa" is intern(x*2)
True

解决方法

在Python中,以下两个相等测试是否等效?

n = 5
# Test one.
if n == 5:
    print 'Yay!'

# Test two.
if n is 5:
    print 'Yay!'

这是否适用于你要比较实例(a list say)的对象?

好的,这样可以回答我的问题:

L = []
l.append(1)
if L == [1]:
    print 'Yay!'
# Holds true,but...

if L is [1]:
    print 'Yay!'
# Doesn't.

因此,==测试重视在哪里is进行测试以查看它们是否是同一对象?

大佬总结

以上是大佬教程为你收集整理的Python-“=”和“is”有区别吗?全部内容,希望文章能够帮你解决Python-“=”和“is”有区别吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。