以Student类为例
class Student:
# 类属性
cls_name_school = "我的大学"
# 初始化方法
def __int__(self, name, age):
self.name = name # 实例属性
self.age = age
# 实例方法
def eat(self):
pass
# 静态方法
@staticmethod
def stc_method_say():
return 'I am a student'
# 类方法
@classmethod
def cls_method_getschool(cls):
return cls.cls_name_school
1.类属性
类和实例对象均可调用
所有对象共享
print(Student.cls_name_school) # print 我的大学
2.初始化方法
构造函数,实例化时候调用
stu = Student('张三', 21)
3.实例属性
实例对象的属性,不同对象有不同的实例属性
stu = Student('张三', 21)
print(stu.name) # print 张三
4.实例方法
实例对象可以调用的方法
调用方式有两种
stu = Student('张三', 21)
stu.eat()
Student.eat(stu)
5.静态方法
类和实例对象均可调用
传入参数不限制
不能使用类或实例的任何属性和方法
print(Student.stc_method_say) # print I am a student
静态方法通常写一些可以单独使用,但和类关系密切的方法。这些方法不需要调用类、实例的属性等,也不需要实例化对象。(其实可以在类外面写一个同样的函数来做这些事,但为了不打乱逻辑关系,将这些方法写在类中)
6.类方法
类和实例对象均可调用
传入的第一个参数必须为类对象(cls)
通过它来传递类的属性和方法(不能传实例的属性和方法)
print(Student.cls_method_getschool) # print 我的大学