The problem is described like the following step:
class A():
def b(self):
pass
>>> A.b
<unbound method A.b>
>>> id(A.b)
140015897411408
>>> id(A.b)
140015897243552
>>> A.b
<unbound method A.b>
>>> id(A.b)
140015897411408
>>> id(A.b)
140015897243552
>>> id(A.b)
140015897243552
As we can see, id(A.b) is 140015897411408 first time and then it changes to 140015897243552 2nd time and then A.b is evaluated,and the same thing happens again.
why the id of the method is changing?