今天我is在Python中学习了关键字,并尝试了以下方法:
>>> x=2+2
>>> y=4
>>> x is y
True
Run Code Online (Sandbox Code Playgroud)
我开始尝试is整数,因为我知道答案是False- 所以我发现结果非常令人惊讶!为了给出一些上下文,我的背景是C++和C#,其中值类型和对象类型之间存在区别.在Python中,正如我现在所知,一切都是引用类型.
看来,原因x is y是True是因为在这个问题解释的一样,怎么是"是"用Python实现关键字?,与使用is字符串有关.即运行时环境通过共享或"实际"整数来保存内存,就像它对字符串一样 - 这在问题的答案中有更详细的解释:Python"is"运算符在我初始化后发现的整数表现出乎意料帖子.
我发现令人惊讶的另一件事是is返回的值是依赖于实现的.这与我的主要问题有关.在引用的关于iswrt字符串实现的问题中,有一些关于何时使用的讨论is,有几个用户表示他们(几乎)从不使用它.所以我的问题是,什么时候应该使用is关键字?什么是规范示例或一般规则?