为什么实例和类调用的类方法不是同一件事

时间:2018-06-23 18:19:21

标签: python class-method

首先,让我们定义一个类和该类的实例

class c:
    @classmethod
    def m(cls, a):
        return a + 1
a = c()

这些方法的使用方式相同

>>> c.m(5), a.m(5)
6, 6

cls在两种情况下均为c

但是c.m is a.mFalse 并且c.m == a.mTrue

为什么实例和类调用的类方法不相同,为什么我什至可以通过该类的实例调用它

如果两种情况下的cls不相同

编辑:

我已经知道is==之间的区别

我已经成功使用is检查两个类是否相同 (例如type(a) is int),但我确实知道应该将其用于is None,所以无论如何,谢谢您将我引向该页面

我的问题实际上是为什么它们不是同一对象

它们甚至具有相同的ID id(a.m) == id(c.m)

0 个答案:

没有答案