Python @classmethod和@staticmethod装饰器使用介绍

简介: Python @classmethod和@staticmethod装饰器使用介绍

@classmethod@staticmethod装饰器使用介绍

 

简介

静态方法:类中用 @staticmethod装饰的不带 self 参数的方法。类的静态方法可以直接使用类名调用。

 

类方法: 默认有个cls参数,可以被类和对象调用,需要加上 @classmethod装饰器

 

普通方法: 默认有个self参数,且只能被对象调用。

 

代码

classDotaGame:

top_score = 0

 

def__init__(self, name):

self.name = name

 

@staticmethod

defprint_game_rules():

print("游戏规则:1 xxxx游戏规则1 \n 2 xxxx游戏规则2")

 

@classmethod

defprint_store(cls):

print("历史最高分: %s" % cls.top_score)

 

defprint_game_name(self):

print('开始 %s 游戏' % self.name)

 

DotaGame('dota').print_game_name()

 

DotaGame.print_store()

 

DotaGame.print_game_rules()

运行结果:

开始dota游戏

历史最高分: 0

游戏规则:1 xxxx游戏规则1

2 xxxx游戏规则2

 

结论

1、对于不需要访问类实例属性,类实例方法,和类属性的函数定义成静态函数

 

2、对于需要访问类属性的定义成类函数

 

3、对于需要访问实例属性、实例方法的定义成实例函数

目录
相关文章
|
4月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
298 100
|
5月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
303 101
|
4月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
186 88
|
5月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
249 99
|
5月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
224 98
|
5月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
5月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
5月前
|
缓存 测试技术 Python
解锁Python超能力:深入理解装饰器
解锁Python超能力:深入理解装饰器
154 2
|
5月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
366 0

推荐镜像

更多