菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python classmethod 修饰符

Python 内置函数 Python 内置函数


描述

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

语法

classmethod 语法:

classmethod

参数

  • 无。

返回值

返回函数的类方法。

实例

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

#!/usr/bin/python# -*- coding: UTF-8 -*-classA(object): bar = 1deffunc1(self): print('foo') @classmethoddeffunc2(cls): print('func2')print(cls.bar)cls().func1()# 调用 foo 方法A.func2()# 不需要实例化

输出结果为:

func2
1
foo

Python 内置函数 Python 内置函数

AI 思考中...

1 篇笔记 写笔记

  1. #0
    475
    class A(object):
     # 属性默认为类属性(可以给直接被类本身调用)
     num = "类属性"
     # 实例化方法(必须实例化类之后才能被调用)
     def func1(self): # self : 表示实例化类后的地址id
     print("func1")
     print(self)
     # 类方法(不需要实例化类就可以被类本身调用)
     @classmethod
     def func2(cls): # cls : 表示没用被实例化的类本身
     print("func2")
     print(cls)
     print(cls.num)
     cls().func1()
     # 不传递传递默认self参数的方法(该方法也是可以直接被类调用的,但是这样做不标准)
     def func3():
     print("func3")
     print(A.num) # 属性是可以直接用类本身调用的
     
    # A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
    A.func2()
    A.func3()
    8年前 (2018年10月14日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /