实例方法 :可以通过实例化对象调用的方法 实例方法不能被静态方法和类方法访问
类方法 :操作实例对象的方法 静态方法和类方法可以被实例方法访问
私有方法 : 只能类内部调用的方法
静态方法 :不需要传参数。不能访问实例成员和类成员 当我们需要某些与类和实例无关的功能,我们可以使方法静态化。相当于类外函数,静态函数方法调用,保证代码工整了,可以用对象调用
实例变量 : 实例化对象传入的变量
类变量,类属性 : 在类里面定义的变量,类名调用,也可以通过实例化对象调用 所有实例化对象共有的属性
私有变量,私有属性 : 不能在类的外部被使用或直接访问
直接上代码参考:
class Person:
count = 0 # 类属性/变量
def __init__(self, name, age, score):
self.name = name # 实例变量
self.__age = age # 实例变量#私有属性
self.score = score # 实例变量
Person.count += 1
@property # 获取私有属性
def age(self):
return self.__age
@age.setter # 私有属性设置
def age(self, new_age):
self.__age = new_age
@age.deleter # 删除私有属性
def age(self):
del self.__age
def show_info(self): # 实例方法,实例化对象调用的方法
self.score = self.__show_score() #通过实例方法调用私有方法
return self.name, self.age, self.score
@classmethod # 跟实例化无关,#在类外部使用,用来操作类变量的方法
def show_age(cls, age): # 创建类方法,参数是age,调用时需要传入实例化的age
age += 1
return age
@staticmethod # 静态方法,相当于跟类与实例无关的方法
def finish():
return 'add person finished!'
def __show_score(self): # 私有方法,只能类内部调用,可以访问实例化变量
return self.score-10
lily = Person('lily', 21, 55) # 实例化对象
eric = Person('eric', 26, 66)
print(lily.finish()) # 调用静态方法
print(lily.score) # 调用实例变量的值
print(Person.count) # 调用类变量的值
print(lily.count) # 通过对象调用类变量的值
print(*lily.show_info()) # 调用实例化方法
print(lily.age) # 通过@property修改后调用私有属性的值
print(lily.show_age(lily.age)) # 调用类方法