class Student():
school = "xcxy" # 类属性
__major = "computer" # 类私有属性
def __init__(self ,name, age): # 构造方法
self.name = name # 实例属性
self.__age = age # 实例私有属性
def match(self, score): # 实例方法
print(self.school) # 访问类属性 self.类属性名
print(Student.school) # 访问类属性 类名.类属性名
print(self.__major) # 访问类私有属性 self.类私有属性名
print(Student.__major) # 访问类私有属性 类名.类私有属性名
print(self.name) # 访问实例属性 self.实例属性名
print(self.__age) # 访问实例私有属性 self.实例私有属性名
def __fly(self,nnn): # 私有方法 外部访问只能是 对象._类名__私有方法名
print(nnn) # 其他和实例方法相同
@classmethod
def eat(cls,num): # 类方法
print(cls.school) # cls.类属性
print(Student.school) # 类名.类属性
print(cls.__major) # cls.类私有属性
print(Student.__major) # 类名.类私有属性
@staticmethod
def run(numm):
print(Student.school) # 类名.类属性
print(Student.__major) # 类名._ _私有类属性
stu = Student("hjh",24) # 实例化对象
类属性 类私有属性
以下称为外部
对类属性访问
print(stu.school) # 对象.类属性名 xcxy
print(Student.school) # 类名.类属性名 xcxy
对类属性修改
stu.school = "qhdx" # 对象. 类属性名 = "qhdx"
print(stu.school)
Student.school = "bjdx" # 类名. 类属性名 = "bjdx"
print(Student.school)
对类私有属性的访问
print(stu._Student__major) # 对象._类名__私有属性名 computer
print(Student._Student__major) # 类名._类名__私有属性名 computer
对类私有属性的修改
stu._Student__major = "jixie" # 对象._类名__私有属性名 = "jixie"
print(stu._Student__major)
Student._Student__major = "dianqi" # 类名._类名__私有属性名 = "dianqi"
print(Student._Student__major)
对实例属性访问
print(stu.name) # 对象.实例属性名
对实例属性修改
stu.name = "hsf" # 对象.实例属性名 = "hsf"
print(stu.name)
对实例私有属性访问
print(stu._Student__age) # 对象.实例属性名
对实例私有属性修改
stu._Student__age = 20 # 对象._类名__实例属性名 = "hsf"
print(stu._Student__age)
外部调用实例方法
stu.match(300) # 对象.方法名(参数列表) 不能使用 类名.实例方法名 的方式调用
外部调用私有方法
stu._Student__fly(500)
调用类方法
Student.eat(200) # 类名.类方法名([实参列表])
stu.eat(200) # 对象.类方法名([实参列表])
调用静态方法
Student.run(800) # 类名.静态方法名([实参列表])
stu.run(800) # 对象.静态方法名([实参列表])