1.静态属性和实例属性
有些属性是一个类公用的属性,我们可以定义为静态属性。有些属性是一个类的某个实例所特有的属性,可以可以定义为实例属性。
例如我们下面定义的一个学生类。假设所有学生都在class1,则class1就可以定义为静态属性。对每个学生而言各自的名字、年龄、体重又是不一样的,我们就可以定义为实例属性。当每个实例化对象产生的时候,我们就给他赋一个其自身的属性。
#创建一个类 class Student(): # 定义类静态属性, 所有学生都在class1班 grand = 'class1' # 定义类的实例属性 def __init__(self, name, age, weight): self.name = name self.age = age self.weight = weight # 实例化一个学生对象,并进行初始化 student1 = Student('James', 30, 60) #实例属性的调用 print(student1.name) print(student1.age) print(student1.weight) print(student1.eat()) #实例对象也可以调用静态属性 print(student1.grand) #静态属性的调用 print(Stuend.grand)需要注意:静态属性可以由类调用,也可以由实例调用。而实例属性则只能由实例调用!!!
2.静态方法和实例方法
类有静态属性也有实例属性,同样的类也有静态方法和实例方法。其作用是一样的。静态方法是类的公用方法,也就是说这个类的实例大家都会拥有的一些方法。而实例方法则是这个类的特定实例才具有的方法。
#创建一个类 class Student(): #定义类的静态方法 @staticmethod def eat(): print('所有学生都会吃饭') # 定义类的实例方法 def learn(self): print('我会学些') # 实例化一个学生对象,并进行初始化 student1 = Student('James', 30, 60) #实例方法的调用 print(stuendt1.eat()) #直接使用类名调用静态方法和静态属性 print(Student.eat()) print(Student.grand)