实例方法---------必须要创建实例来调用
类名().方法()
类方法和静态方法------------可以直接类名.方法名()调用 也可以实例方法调用
普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。
如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
类方法可以直接被类调用,不依托于任何对象
当一个方法的操作只涉及到静态属性的时候,可以使用classmethod来装饰这个方法,变成类方法
静态方法
在完全面向对象的程序中
如果在一个函数 既和对象没有关系 也和类没有关系 那么就用staticmethod来装饰,变成静态方法
类方法和静态方法都是类调用的
# coding:utf-8 class Book(object): def __init__(self, title): self.title = title @classmethod def class_method_create(cls, title): book = cls(title=title) return book @staticmethod def static_method_create(title): book= Book(title) return book book1 = Book("use instance_method_create book instance") book2 = Book.class_method_create("use class_method_create book instance") book3 = Book.static_method_create("use static_method_create book instance") print(book1.title) print(book2.title) print(book3.title)