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