zoukankan      html  css  js  c++  java
  • 类方法和静态方法

    类方法

        定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);

        调用:实例对象和类对象都可以调用。

     类方法应用场景:

    1,类中有些方法不需要对象参与【不要对象的一切东西】
    2,对类中的静态变量进行改变时要用类方法
    3,继承中,父类得到子类的类空间

    静态方法

        定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

        调用:实例对象和类对象都可以调用。

     作用:

    1,代码块清晰
    2,代码复用性

    #类方法
    # class A:
    #     def func(self): #普通方法
    #         print(self)
    #
    #     @classmethod
    #     def func1(cls): #类方法
    #         print(cls)
    #
    # a1 = A()
    # # a1.func()
    # # A.func(a1)
    #
    # A.func1()
    # # 类方法:通过类名调用的方法,类方法中第一个参数是cls,python自动将类名(类空间)自动传给cls
    # a1.func1()#对象调用类方法,得到的是类本身
    #
    # #类方法应用场景
    # #1,类中有些方法不需要对象参与【不要对象的一切东西】
    # #2,对类中的静态变量进行改变时要用类方法
    # #3,继承中,父类得到子类的类空间
    #
    # class B(A):
    #     pass
    #
    # B.func1()
    
    #静态方法:
    #不需要传默认参数
    
    class A:
        @staticmethod
        def login(username,password):
            if username == 'alex' and password == '123':
                print('登录成功')
            else:
                print('登录失败')
    
    A.login('alex','123')
    
    
    #1,代码块清晰
    #2,代码复用性
    
  • 相关阅读:
    穿戴式眼镜显示屏方案
    centos8 shell脚本定时restart workerman问题
    cmake中文文档(一)-编译命令行工具
    Dear ImGui中文文档(一)
    PHP实现布隆过滤算法
    case when的记录
    前端的一些记录
    z-index 弹出元素被原本页面的元素遮挡住
    DevExpress 导出pdf中文不显示或者乱码问题
    DevExpress控件位置的微调
  • 原文地址:https://www.cnblogs.com/tanxu05/p/10039628.html
Copyright © 2011-2022 走看看