class Student(object):
count = 0
#构造方法
def __init__(self, name, age):
self.name = name
self.age = age
Student.count += 1
# 普通方法
def fav(self):
print("我最喜欢的人是:%s" % self.name)
# 类方法,可以访问类属性
@classmethod
def student_count(cls):
print(cls.count)
# 静态方法,不可以访问类属性
@staticmethod
def scord():
print("这个就是测试分数" )
s1 = Student("springbocai", "16")
s1.fav()
s1.student_count()
s1.scord()
测试
- 三种方法都可以通过实例来调用,但是静态方法和类方法无法访问实例属性
-
我最喜欢的人是:springbocai 1 这个就是测试分数
区别
- 普通方法不能通过类名调用,但是静态方法和类方法是可以的
总结
- 普通方法,可以通过self访问实例属性
def normalMethod(self,data)
类方法,可以通过cls访问类属性
@classmethod
def classMethod(cls,data)
- 静态方法,不可以访问,通过传值的方式
@staticmethod
def staticMethod(data)