类方法
使用装饰器@classmethod 第一个参数必须是当前类对象,该参数名一般约定为“cls” (可修改但不建议)通过他来传递类的属性和方法(不能传实例的属性和方法)
调用:实例对象和类对象多可以调用
实例方法
第一个参数必须是实例对象,该参数名要为“self”通过他来传递实例的属性和方法(可传递类的属性和方法)
调用:实例对象调用
静态方法
普通函数就位于类定义的命名空间中,它不会对任何实例类型进行操作,需要使用装饰器@staticmethod定义静态方法
调用:类对象和实例都可以调用类方法
通过实例了解
class Book(object): # 类属性 age = 23 def __init__(self,title,name='a'): self.title = title self.name = name #类方法 @classmethod def create(cls,title,x): book = cls(title=title,name=x) return book # 静态方法 @staticmethod def cx(x): return x def add(self): print(self.title,self.name) def lei(self): # 实例访问类变量 print(self.__class__.age) @classmethod def lei2(cls): # 类方法访问类变量 print(cls.age) # 实例化对象 book = Book("腾") book.add() # 腾 a # 改变实例属性 book.title="翁婿" book.add() #翁婿 a book.lei2() #23 print(Book.age) #23 #修改类属性 Book.age =55 print(Book.age) # 类调用静态方法 print(Book.cx(3)) # 实例调用静态方法 print(book.cx(4))