zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    ab命令做压测测试
    用js两张图片合并成一张图片
    Web全景图的原理及实现
    深入理解Java中的IO
    Spring AOP详解
    spring @Transactional注解参数详解
    优化MyBatis配置文件中的配置
    使用MyBatis对表执行CRUD操作
    @requestBody注解的使用
    url 拼接的一个模块furl
  • 原文地址:https://www.cnblogs.com/toby-yu/p/12357445.html
Copyright © 2011-2022 走看看