class StaticMehtod(object):
这个静态方法内部只使用了传进来的x和y, 而没有使用实例对象self
@staticmethod
def plus_num(x, y):
return x + y
def instance_method(self, x, y):
return self.plus_num(x, y)
print(StaticMehtod() is StaticMehtod())
print(StaticMehtod().plus_num is StaticMehtod().plus_num)
print(StaticMehtod().instance_method is StaticMehtod().instance_method)
False
True 这里的True表示两次使用的静态方法是同一个,不用重新创建一个对象,节省了空间
False
这里说一下python中is和==的区别,==只比较两个对象之间的数值是否相等,而 is 判断的是引用是否相同,也就是储存的内存空间是否相同,True代表就是同一个对象,反之表示不同的对象.
所以当类中某一个方法用不到实例对象本身时可以使用静态方法