1.定义一个类(不限定定义哪个类):
要求: a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量
d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var
def print_info():
print("This is a object")
class Arg:
arg = 1
def __init__(self, arg, name):
self.arg = arg
self.name = name
arg1 = Arg(1, "张三")
arg2 = Arg(1, "lisi")
print(arg1.arg + arg2.arg)
print_info()
arg1.temp_var = "unkown"
print(arg1.temp_var)
# 输出结果为
2
This is a object
unkown
2.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("This is A")
class B:
def print_info(self):
print("This is B")
def say_something(self):
print("My name is B")
class C:
def say_something(self):
print("My name is C")
class D:
def print_info(self):
print("This is D")
def say_something(self):
print("My name is D")
class E(A, B, C, D):
def print_info(self):
super(A, E).print_info(self)
def say_something(self):
super(B, E).say_something(self)
e = E()
e.print_info()
e.say_something()
class E(A, B, C, D):
def print_info(self):
super(C, E).print_info(self)
def say_something(self):
super(C, E).say_something(self)
# 输出结果为
This is B
My name is C
3.定义一个父类:
要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名
定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法
class A:
def say_something(self):
print("A says something")
class B:
def print_info(self):
print("This is B")
class C:
def say_something(self):
print("C says something")
def print_info(self):
print("This is C")
class D(B):
pass
class E:
pass
class G(E, C):
pass
# A, B, E, C
class F(A, B, G):
def say_something(self):
super(E, self).say_something()
f = F()
f.print_info()
f.say_something()
print(F.__mro__)
# 输出结果为
This is B
C says something
(<class '__main__.F'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.G'>, <class '__main__.E'>, <class '__main__.C'>, <class 'object'>)