@classmethod

python的classmethod方法,修饰的函数不需要实例化,不需要self参数,通过cls可以访问类的相关属性、类的方法、类的实例化对象等。

类方法以cls作为第一个参数,cls表示类本身。

定义时使用@classmethod装饰器。

>>> class Student(object):
	'''
        This is a Student class.
        '''
	count = 0
	books = []
	def __init__(self,name,age):  #self实际表示实例化类后的地址id。
		self.name = name
		self.age = age
	@classmethod
	def printClassInfo(cls):
		print(cls.__name__)
		print(dir(cls))
	pass

		      
>>> Student.printClassInfo()  #因为使用了@classmethod,所以不需要实例化,直接能够使用
		      
Student
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'books', 'count', 'printClassInfo']
>>> 

 

你可能感兴趣的:(Python)