Python 类方法、实例方法、静态方法的使用与及实例

类方法

      使用装饰器@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))

 

posted @ 2020-02-24 16:24  Mr.toby  阅读(237)  评论(0编辑  收藏  举报