一、定义一个类(不限定定义哪个类):
要求:
a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量 d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var
class Person: country = 'china' def __init__(self, name, age): self.name = name self.age = age def __str__(self): print(self.age, self.name, Person.country) def __add__(self, other): return self.age + other.age per = Person('张三', 18) per.__str__() print(per.age, per.name, 'This is a object') per1 = Person('李四', 19) print(per + per1) per.age = 18 print(per.age) # 输出 18 张三 china 18 张三 This is a object 37 18
二、super的使用
定义一个类A, 里面又一个方法print_info
定义一个类B, 里边有一个方法print_info和一个方法say_something
定义一个类C, 里边有一个方法say_something
定义一个类D, 里边有一个方法print_info和一个方法say_something
定义一个类E,继承类A, 类B, 类C,类D实例化类E的对象
执行print_info和say_something方法
利用super,让执行print_info时调用B中print_info
利用super, 让执行say_something时调用C中say_something
利用super, 让执行print_info和say_something时调用D中print_info和say_something
class A: def print_info(self): print('print_info A') class B: def print_info(self): print('print_info B') def say_something(self): print("say_something B") class C: def say_something(self): print("say_something C") class D: def print_info(self): print('print_info D') def say_something(self): print("sday_something D") class E(A, B, C, D): # def print_info(self): # super(A, E).print_info(self) def print_info(self): super(A, E).print_info(self) # def say_something(self): # super(B, E).say_something(self) def print_info(self): super(C, E).print_info(self) def say_something(self): super(C, E).say_something(self) e = E() e.print_info() e.say_something() print(E.__mro__) # 输出 print_info D sday_something D (<class '__main__.E'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.D'>, <class 'object'>)
三、定义一个父类
要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名 定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法
class Person: def __init__(self, name, age, sex): self.name = name self.age = age self._sex = sex def __data(self): pass class Student(Person): def __data(self): pass stu = Student('张三', 18, '男') print(stu._sex) stu._Person__data() stu._Student__data() 输出 男