zoukankan      html  css  js  c++  java
  • 类方法classmethod,静态方法staticmethod

    # # # # 类方法
    # # # class A:
    # # #     def func(self):   # 普通方法
    # # #         print(self)
    # # #
    # # #     @classmethod   # 类方法
    # # #     def func1(cls):
    # # #         print(cls)
    # # # a = A()
    # # # a.func()
    # # # A.func(a)
    # # # # <__main__.A object at 0x00000208AE3DB400>
    # # # # <__main__.A object at 0x00000208AE3DB400>
    # # # A.func1()  #<class '__main__.A'>
    # # # # 类方法:通过类名调用的方法,类方法中第一个参数将=约定俗称为cls,python自动将类名传递给cls
    # # # a1 = A()
    # # # a.func1()  # 通过对象调用类方法,cls是对象本身
    # # #
    # # # 类方法的应用场景
    # # #1 类中有些方法不需要对象参与
    # # class A:
    # #     name = "dudu"
    # #     count = 1
    # #
    # #     # def func(self):
    # #     #     return A.name + str(A.count + 1)
    # #     @classmethod
    # #     def func(cls):
    # #         return cls.name + str(cls.count + 1),cls
    # #
    # # class B(A):
    # #     pass
    # #
    # # print(B.func())
    # # # print(A.func(111))  # 需要传入一个无意义参数,不可取
    # #
    # # # a = A()
    # # # print(a.func()) # 这里使用对象来改版了静态字段,虽然可以操作,但是不方便阅读。所以使用类方法
    # # print(A.func())
    #
    # # 2 对类中静态变量进行改变时需要用到
    # #3 继承中父类得到子类的类空间
    # # # 不通过类方法,父类得到子类的类空间里面的任意值
    # # class A:
    # #     age = 99
    # #
    # #     def func(self):
    # #         print(self)
    # #         print(self.age)
    # #
    # # class B(A):
    # #     age = 22
    # #
    # # b= B()
    # # b.func()
    # class A:
    #     age = 99
    #     @classmethod
    #     def func(cls):
    #         print(cls)
    #         print(cls.age)
    #
    # class B(A):
    #     age = 22
    #
    # B.func()
    # # 通过类方法不止可以查,还可以改
    
    # # 静态方法,不传入self但可以传入其他参数,作用与单独定义函数以相试,但更加清晰
    class A:
        @staticmethod
        def func(a):
            print("666")
            print(a)
    A.func(44)
    
    # 代码块清晰,复用性
  • 相关阅读:
    洛谷 P1026 [NOIP2001 提高组] 统计单词个数
    CodeForces
    CodeForces
    常用的正则表达式(复制粘贴即可)
    Vue生命周期
    前端开发面试题
    前端Vue中动态使用本地图片路径
    《剑指offer》面试题13 在O(1)时间删除链表节点 Java版
    《剑指offer》面试题12 打印1到最大的n位数 Java版
    《剑指offer》面试题11 数值的整数次方 Java版
  • 原文地址:https://www.cnblogs.com/yfjly/p/10592975.html
Copyright © 2011-2022 走看看