python创建两个圆对象_在Python中创建两个具有相同值的不可变对象

Is it possible in Python to create two immutable objects with the same value?

So that you understand what I mean, here are some examples:

>>> a = 13

>>> b = 13

>>> a is b

True

>>> a = 13

>>> b = 26/2

>>> a is b

True

>>> a = 13

>>> b = int.__new__(int, 13)

>>> a is b

True

>>> a = 13

>>> b = int("13")

>>> a is b

True

Is it possible to create a and b with the same value but a is b to return False?

Just learning.... :D

解决方案

Sure, just choose a value that is too large to be cached:

>>> a = 256

>>> b = 256

>>> a is b

True

>>> a = 257

>>> b = 257

>>> a is b

False

>>> a = "hey"

>>> b = "hey"

>>> a is b

True

>>> a = "hey!"

>>> b = "hey!"

>>> a is b

False

Only small integers and short strings will be cached (and this is implementation-dependent, so you shouldn't rely on that anyway). is should only be used for testing object identity, never for testing equality.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值