为什么在Python方法和静态方法中,“ id”和“ is”的行为有所不同?

时间:2019-05-29 15:12:28

标签: python identity equality

class A:
     def self_method(self):
         pass

     @staticmethod
     def static_method():
         pass


a1, a2 = A(), A()

print(a1.self_method == a2.self_method,
      id(a1.self_method) == id(a2.self_method),
      a1.self_method is a2.self_method)

print(a1.static_method == a2.static_method,
      id(a1.static_method) == id(a2.static_method),
      a1.static_method is a2.static_method)
  

输出:

(False, True, False)
(True, True, True)

为什么id(a1.self_method) == id(a2.self_method)True,而a1.self_method is a2.self_methodFalse?这是什么意思? python是否为每个对象都重新创建此方法?

0 个答案:

没有答案