python @classmethod和@staticmethod 装饰器使用

本文介绍了Python中的@classmethod和@staticmethod装饰器,用于避免实例化对象调用类函数,提高代码效率。@classmethod接收cls参数,可直接访问类属性;@staticmethod无需任何参数,作为类方法使用,不与类实例关联。通过它们,代码结构更加清晰。
摘要由CSDN通过智能技术生成

此文章已不再更新,查看最新版文章:

Python @staticmethod和@classmethod

 

------------------------------------------------- 分隔符 -------------------------------------------------

一般来说,类的函数都需要实例化后,通过实例化对象来使用。就像这样:

class A(object):
	def a(self)
		print('a')
s = A()
s.a()
>>>'a' (输出)

 

而有时候,在多个类中都会使用到相同的一些工具函数,或者在一个类中,有一个在别的函数中使用到的通用函数,那么这时候,如果每次使用都要实例化后再调用就太傻了,又造成多余的资源浪费。

这时候,使用@classmethod 和 @staticmethod 装饰器来装饰函数,就可以函数直接使用类名来调用。如:

 

class A(object):
	@classmethod
	def a(cls):
		print('a')
	@staticmethod
	def b():
		print('b')
	def c(self):
		A.a()
		B.a()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值