类方法
格式如下:
@classmethod
def 类方法名(cls [,形参列表]) :
函数体
注意:
-
@classmethod 必须位于方法上一行
-
第一个 cls 必须有;cls 指的就是“类对象”本身,调用时不需要传值
-
调用类方法格式:类名.类方法名(参数列表)
-
类方法中不能使用实例的属性和方法
class Students:
job = ‘Teacher’def init(self, name):
self.name = name@classmethod
def test_print(cls):
#print(Students.name) #调用实例的属性和方法 报错 AttributeError: type object ‘Students’ has no attribute ‘name’
print(cls.job)
Students.test_print()
静态方法
格式如下:
@staticmethod
def 静态方法名([形参列表]) :
函数体
注意:
- @staticmethod 必须位于方法上面一行
- 调用静态方法格式:“类名.静态方法名(参数列表)”。
- 静态方法中不能使用实例的属性和方法
静态方法定义与类无关的方法,只是为了方便而写在类下面