静态方法
class Student(object):
sum = 0
def __init__(self,name,age):
self.name = name
self.age = age
self.plus_sum()
"""
1. 如何区分类方法和实例方法?
类方法必须有装饰器 @classmethod
2. 疑问: self 和这里的 cls(class简写)是一个东西吗?
是的,前面说了self可以随便命名,为示区分分类方法和实例方法,官方推荐使用cls
3. 类方法的作用?
专门用来操作类变量
说明: 类方法和类对象没有什么直接关系
"""
@classmethod
def plus_sum(cls):
cls.sum += 1
print("当前学生总数为:" +str(cls.sum))
pass
"""
静态方法:方法上面加上 @staticmethod 装饰器
使用: 对象和类都可以调用
注意: 静态方法没有this指针(所以定义的时候也不用传入self),所有不能用self访问,否则报错
"""
@staticmethod
def add(x,y):
print("this is static method")
print("访问类变量, sum:"+str(Student.sum))
pass
s1 = Student("张三",1)
s1.add(1,2)
Student.add(1,2)
当前学生总数为:1
this is static method
访问类变量, sum:1
this is static method
访问类变量, sum:1
