相关疑难解决方法(0)

如何检查两个变量是否在Python中引用同一个对象?

x和y是两个变量.
我可以检查它们是否相同x == y,但我如何检查它们是否具有相同的身份?

例:

x = [1, 2, 3]
y = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

现在x == y是True,因为x和y相等,但是x和y不是同一个对象.
我正在寻找像sameObject(x, y)这种情况应该是假的东西.

python equality

43
推荐指数
2
解决办法
1万
查看次数

为什么Python处理'1是1**2'与'1000是10**3'不同?

这个关于缓存小整数和字符串的问题的启发,我发现了以下我不理解的行为.

>>> 1000 is 10**3
False
Run Code Online (Sandbox Code Playgroud)

我以为我理解了这种行为:1000是很大的缓存.1000和10**3指向2个不同的对象.但我错了:

>>> 1000 is 1000
True
Run Code Online (Sandbox Code Playgroud)

因此,Python可能会将计算与"正常"整数区别对待.但这种假设也是不正确的:

>>> 1 is 1**2
True
Run Code Online (Sandbox Code Playgroud)

如何解释这种行为?

python reference python-internals semantics

26
推荐指数
1
解决办法
1519
查看次数