相关疑难解决方法(0)

运算符'非常奇怪'的行为方法

为什么是第一个结果False,如果不是True

>>> from collections import OrderedDict
>>> OrderedDict.__repr__ is OrderedDict.__repr__
False
>>> dict.__repr__ is dict.__repr__
True
Run Code Online (Sandbox Code Playgroud)

python methods python-2.7 python-internals

47
推荐指数
1
解决办法
2317
查看次数

为什么方法没有引用相等?

我有一个错误,我在使用时依赖于彼此相等的方法is.事实证明并非如此:

>>> class What(object):
    def meth(self):
        pass

>>> What.meth is What.meth
False
>>> inst = What()
>>> inst.meth is inst.meth
False
Run Code Online (Sandbox Code Playgroud)

为什么会这样?它适用于常规功能:

>>> def func():
    pass

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

python methods identity equality reference

14
推荐指数
1
解决办法
821
查看次数

为什么"是"运算符说这些方法不一样?

考虑以下代码:

class Person(object):
   def sayHello(self):
       return 'Hello'

print(Person().sayHello is Person().sayHello)
Run Code Online (Sandbox Code Playgroud)

我希望它能显示出真实.为什么显示False?

python identity class object python-3.x

11
推荐指数
2
解决办法
864
查看次数