无参的普通方法 : 只能用类调用
绑定方法:
(1)绑定到对象:在调用时,自动传递self对象参数, 对象可直接调用,类调用的话需要传参obj
(2)绑定到类 :在调用时,自动传递cls这个类参数, 括号里面有没有cls,self,都可以用不带参数的类或对象调用
静态方法:
无论是对象还是类都可以调用,把方法作为普通方法进行使用
class Dog():
def __init__(self,name):
self.name = name
# 无参普通方法(不能被对象调用)
def eat():
print("小狗喜欢吃包子")
# 绑定到对象的方法(可以直接被对象调用,类调用需要传参)
def tail(self):
print(self.name)
print("小狗看见主人,喜欢摇尾巴")
# 绑定到类的方法(用类调用无需传参)
@classmethod
def jump(cls):
print(cls)
print("小狗喜欢接飞盘")
# 静态方法
@staticmethod
def jiao():
print("看见主人,就旺旺叫")
obj = Dog("迈克尔·旺旺")
# 无参普通方法
# obj.eat() error
Dog.eat()
# 绑定到对象的方法
# obj.tail()
# Dog.tail(obj) #不推荐
# 绑定到类的方法 #括号里面有没有cls,self,都可以用不带参数的类或对象调用
# Dog.jump() # 推荐
# obj.jump()
# 静态方法 : 有几个参数就传递几个参数,跟普通方法的调用一样;
# Dog.jiao()
obj.jiao()
原文地址:https://www.cnblogs.com/banbosuiyue/p/11826682.html