第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法
2023-09-27 14:26:59 时间
第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法
上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容。
一、 案例说明
本节定义了类StaticMethod,在类中定义了静态方法stmethod、类方法clsmethod和实例方法objmethod,重写了__new__(self)方法。演示内容包括:
1. 在类方法clsmethod中通过cls和类名两种方式调用静态方法stmethod;
2. 在实例方法objmethod中通过类名调用静态方法;
3. 在重写的实例方法__new__中通过类名、self方式调用静态方法,并输出“self.__class__”的值,以此说明为什么不能通过“self.__class__.stmethod”进行调用。
二、 案例代码
class StaticMethod():
objcnt1 = 0
@staticmethod
def stmethod():print("in stmethod")
@classmethod
def clsmethod(cls):
print("in clsmethod")
cls.stmethod() #类方法中使用cls调用静态方法
StaticMethod.stmethod() #类方法中使用类名调用静态方法
def objmethod(self):
print("in objmethod")
StaticMethod.stmethod() #实例方法中使用类名调用静态方法
def __new__(self):
StaticMethod.stmethod()#实例方法中使用类名调用静态方法
self.stmethod()#实例方法中使用self调用静态方法
self.clsmethod()#实例方法中使用self调用类态方法
print("self.__class__=",self.__class__) #观察new方法中self.__class__的值
#self.__class__.stmethod() 此种方式不能使用
return super().__new__(self)
sm1=StaticMethod()
sm1.clsmethod()#通过实例访问类方法
sm1.objmethod()#执行实例方法
sm1.stmethod()#通过实例访问静态方法
sm1.__class__.stmethod()#通过实例.__class__访问静态方法
三、 案例截屏
本节结合案例详细对上节介绍的静态方法的定义和使用方法进行了演示,希望对大家理解相关知识有所帮助。
老猿Python(https://blog.csdn.net/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!
相关文章
- Python读取本地HTML中的canvas以图片形式存入Word文档
- python课程:python3的数字与字符串
- Google Earth Engine(GEE)——Python Landsat5/7/8合并、链接和属性统计(NBR案例分析)
- 百度攻城狮训练营2021-工程能力study2 -- 2.4 代码检查规则:Python 语言案例详解 脑图整理
- 79 python - 打飞机案例(敌机发射子弹)
- 77 python - 打飞机案例(优化代码)
- 75 python - 打飞机案例(玩家飞机发射子弹)
- 72 python - 打飞机案例(检测键盘)
- 「Python版」手把手带你如何进行Mock测试
- python更加灵活的Logger日志
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python 类方法综合案例
- Python 面向对象封装案例
- python 中numpy中函数hstack用法和作用
- 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.10 练习
- 【转】Python学习---Socket通信原理以及三次握手和四次挥手详解
- python 字符串最常用的13个处理操作
- python 在已有记录规则下增加权限
- Python 基础 之 多任务 Process 进程应用的简单案例,简单实现文件夹文件拷贝(进程池,进程池队列等)
- Python 常见问题 之 PyCharm 弹出 Server‘s certificate is not trusted 的简单解决方法
- Python三次样条插值与MATLAB三次样条插值简单案例
- python六十四课——高阶函数练习题(三)
- python第十四课--排序及自定义函数之自定义函数(案例五)
- python第十四课--排序及自定义函数之自定义函数(案例三)
- Python编程题自用(一)
- Python实战案例分享:爬取当当网商品数据