python classmethod用处_Python classmethod类方法修饰符
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类方法修饰符相关推荐
- Python学习笔记11:函数修饰符
Python学习笔记11:函数修饰符 Python有很多有趣的特性,其中函数修饰符就是一个. 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一 ...
- python单词反转_python文本 字符串逐字符反转以及逐单词反转
python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...
- python tuple用处_python tuple有什么用
Python中tuple(元组)的作用:作为参数传递给函数调用.或是从函数调用那里获得参数时,保护其内容不被外部接口修改.通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不 ...
- python raise用处_python基础教程python raise的基本使用
简介 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 1.演示raise用法 try: s = None i ...
- python tuple用处_Python入门之最少必要知识
学习任何的新知识和新技能,基础都是最关键的,就像小的时候学习语文,一定是从拼音开始学起,这是之后学习汉字的基本功,是必须掌握的最基础知识.那学习Python又有哪些最少必要知识呢? 学习Python永 ...
- python属性访问权限_python 面向对象-访问权限修饰符
1.访问权限修饰符可以用来修饰变量和方法 2.内部调用和外部调用: 比如在类的内部调用实例方法,叫内部调用:在类的外部调用实例化方法,叫外部调用 当然,类变量以及实例变脸也是有内部调用和外部调用 #c ...
- python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用(3-20181205) 文章目录: 一. @staticmetho ...
- Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)
描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关 ...
- Python中的@classmethod修饰符
classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等 class A(object):bar = ...
最新文章
- 谷歌开发者机器学习词汇表:纵览机器学习基本词汇与概念
- 第十二届蓝桥杯省赛第二场C++B组真题 【未完结】
- sql多字段求和降序排序_elasticsearch基础笔记11-搜索排序
- 优化体系结构 - 解决多样性数据源
- “编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!
- 开发问题---数据库字段前出现“—”(保存留用,仅供参考)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
- 接口测试常用工具及测试方法(新手篇)
- IDL实现植被覆盖度计算
- Unity 脚本生成瓦片地图TileMap
- 信息系统管理师备考指南
- 网络唤醒Wake On Lan
- python爬取网易评论
- HTML---复选框默认打钩
- 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
- Web前端HTML使用
- 手把手教你用熵值法计算权重
- python之表白神器--组图拼爱心墙
- 前端笔记(03)——一文看懂flex布局
- 策略梯度方法介绍——带基线的REINFORCE
热门文章
- 数据库的显示、创建、使用 、用户授权管理及忘记root用户后重置密码
- python3下使用cv2.imwrite存储带有中文路径图片或者绝对路径图片
- 【图片】图像基本知识以及三原色原理 (rgb)
- [置顶] 读取pdf并且在web页面中显示
- spring事务的传播机制新解
- Rest_Framework之频率组件部分
- 【学习笔记】慕课网—Java设计模式精讲 第3章 软件设计七大原则-3-6 迪米特原则(最少知道原则)...
- [MySQL] MySQL x64 下载地址
- 【代码笔记】iOS-对UIView进行截图
- H264解码的一个測试程序