classmethod 修饰符将函数转换为类方法。类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。

类方法声明格式:

class C:

@classmethod

def f(cls, arg1, arg2, ...):

...

它可以在类(例如C.f())或实例(例如C().f())上调用。实例被忽略,但它的类除外。如果为派生类调用类方法,则派生类对象作为隐含的第一个参数传递。

类方法第一个参数cls表示自身类,可以来调用自身类的属性,类的方法,实例化对象等。

实例演示:

classmethod.py内容如下

#!/usr/bin/python

# -*- coding: UTF-8 -*-

class C(object):

y = 10

def func1(self): #需要实例化才能调用

print('func1')

@classmethod

def func2(cls): #不需要实例化就能调用

print("func2 start")

print("C.y =", cls.y) #类属性不需要实例化就能调用

new_cls = cls()

new_cls.func1()

try:

cls.func3()

except TypeError as e:

print(e)

print("func2 end")

def func3(): #python2需要实例化之后调用,python3不需要实例化就能调用

print("func3")

C.func2()

X.func2()

python2和python3的运行结果如下

[root@CSDN /home/Sudley/Python]#python2 classmethod.py

func2 start

('C.y =', 10)

func1

unbound method func3() must be called with C instance as first argument (got nothing instead)

func2 end

[root@CSDN /home/Sudley/Python]#python3 classmethod.py

func2 start

C.y = 10

func1

func3

func2 end

[root@CSDN /home/Sudley/Python]#

标签:func2,调用,Python,修饰符,classmethod,实例,print,cls

来源: https://blog.csdn.net/Sudley/article/details/110679754

python classmethod用处_Python classmethod类方法修饰符相关推荐

  1. Python学习笔记11:函数修饰符

    Python学习笔记11:函数修饰符 Python有很多有趣的特性,其中函数修饰符就是一个. 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一 ...

  2. python单词反转_python文本 字符串逐字符反转以及逐单词反转

    python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...

  3. python tuple用处_python tuple有什么用

    Python中tuple(元组)的作用:作为参数传递给函数调用.或是从函数调用那里获得参数时,保护其内容不被外部接口修改.通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不 ...

  4. python raise用处_python基础教程python raise的基本使用

    简介 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 1.演示raise用法 try: s = None i ...

  5. python tuple用处_Python入门之最少必要知识

    学习任何的新知识和新技能,基础都是最关键的,就像小的时候学习语文,一定是从拼音开始学起,这是之后学习汉字的基本功,是必须掌握的最基础知识.那学习Python又有哪些最少必要知识呢? 学习Python永 ...

  6. python属性访问权限_python 面向对象-访问权限修饰符

    1.访问权限修饰符可以用来修饰变量和方法 2.内部调用和外部调用: 比如在类的内部调用实例方法,叫内部调用:在类的外部调用实例化方法,叫外部调用 当然,类变量以及实例变脸也是有内部调用和外部调用 #c ...

  7. python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用

    python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用(3-20181205) 文章目录: 一. @staticmetho ...

  8. Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)

    描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关 ...

  9. Python中的@classmethod修饰符

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

最新文章

  1. 谷歌开发者机器学习词汇表:纵览机器学习基本词汇与概念
  2. 第十二届蓝桥杯省赛第二场C++B组真题 【未完结】
  3. sql多字段求和降序排序_elasticsearch基础笔记11-搜索排序
  4. 优化体系结构 - 解决多样性数据源
  5. “编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!
  6. 开发问题---数据库字段前出现“—”(保存留用,仅供参考)
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
  8. 接口测试常用工具及测试方法(新手篇)
  9. IDL实现植被覆盖度计算
  10. Unity 脚本生成瓦片地图TileMap
  11. 信息系统管理师备考指南
  12. 网络唤醒Wake On Lan
  13. python爬取网易评论
  14. HTML---复选框默认打钩
  15. 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
  16. Web前端HTML使用
  17. 手把手教你用熵值法计算权重
  18. python之表白神器--组图拼爱心墙
  19. 前端笔记(03)——一文看懂flex布局
  20. 策略梯度方法介绍——带基线的REINFORCE

热门文章

  1. 数据库的显示、创建、使用 、用户授权管理及忘记root用户后重置密码
  2. python3下使用cv2.imwrite存储带有中文路径图片或者绝对路径图片
  3. 【图片】图像基本知识以及三原色原理 (rgb)
  4. [置顶] 读取pdf并且在web页面中显示
  5. spring事务的传播机制新解
  6. Rest_Framework之频率组件部分
  7. 【学习笔记】慕课网—Java设计模式精讲 第3章 软件设计七大原则-3-6 迪米特原则(最少知道原则)...
  8. [MySQL] MySQL x64 下载地址
  9. 【代码笔记】iOS-对UIView进行截图
  10. H264解码的一个測试程序