zoukankan      html  css  js  c++  java
  • python classmethod修饰符

    描述

    classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

    语法

    classmethod 语法:

    classmethod

    参数

    • 无。

    返回值

    返回函数的类方法。

    实例

    以下实例展示了 classmethod 的使用方法:

     1 #! /usr/bin/python3
     2 # -*- codeing:UTF-8 -*-
     3 
     4 class A:
     5     # 属性默认为类属性 (可以直接被类本身调用)
     6     bar = 1
     7     # 实例化方法(必须实例化类之后才能被调用)
     8     def func1(self): # self表示实例化类后的地址id
     9         print('foo')
    10     # 类方法 (不需要实例化类就可以直接被类本身调用)
    11     @classmethod
    12     def func2(cls): # cls表示没被实例化的类本身
    13         print('func2')
    14         print(cls)
    15         print(cls.bar)
    16         cls().func1() # 必须要实例化之后才能调用func1()
    17 # A.func1() # 会报错
    18 A.func2()

    输出结果为

    func2
    <class '__main__.A'>
    1
    foo

    在哪些场合适合用classmethod呢?

    https://www.zhihu.com/question/20021164

  • 相关阅读:
    P2764 最小路径覆盖问题
    P1402 酒店之王 网络流
    P2597 [ZJOI2012]灾难 拓扑排序
    FJOI2017 矩阵填数
    2019.2.27模拟
    2019.2.26模拟
    SDOI2013 方程
    [AH2017/HNOI2017]抛硬币
    Lucas定理和扩展Lucas定理
    LuoguP4861 按钮
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/13931993.html
Copyright © 2011-2022 走看看