首先,让我们定义一个类和该类的实例
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.m
是False
并且c.m == a.m
是True
为什么实例和类调用的类方法不相同,为什么我什至可以通过该类的实例调用它
如果两种情况下的cls
不相同
编辑:
我已经知道is
和==
之间的区别
我已经成功使用is
检查两个类是否相同
(例如type(a) is int
),但我确实知道应该将其用于is None
,所以无论如何,谢谢您将我引向该页面
我的问题实际上是为什么它们不是同一对象
它们甚至具有相同的ID id(a.m) == id(c.m)