“”"
1.定义一个类(不限定定义哪个类):
要求: a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量
d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var
“”"
class Person:
class_type = “Person Class”
def init(self, name, age):
self.name = name
self.age = age
def print_info(self):
print(“类变量:”, Person.class_type)
print(“对象变量:”, self.name, self.age)
def __str__(self):
return "This is a object"
def __add__(self, other):
return 2
zhangsan = Person(“zhangsan”, 18)
print(zhangsan.print_info())
lisi = Person(“lisi”, 20)
print(zhangsan + lisi)
产生了一个对象的临时变量 class_type
zhangsan.class_type = “temp variable”
print(zhangsan.class_type)
print(lisi.class_type)
运行结果:
“”"
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(“B says something”)
class C:
def say_something(self):
print(“C says something”)
class D:
def print_info(self):
print(“This is D”)
def say_something(self):
print(“D says something”)
class E(A, B, C, D):
pass
print(E.mro)
<class ‘main.E’>,
<class ‘main.A’>,
<class ‘main.B’>,
<class ‘main.C’>,
<class ‘main.D’>,
<class ‘object’>)
obj = E()
obj.print_info()
obj.say_something()
运行结果:
利用super,让执行print_info时调用B中print_info
class E(A, B, C, D):
def print_info(self):
super(A, self).print_info()
obj = E()
obj.print_info()
运行结果:
利用super, 让执行say_something时调用C中say_something
class E(A, B, C, D):
def say_something(self):
super(B, self).say_something()
obj = E()
obj.say_something()
运行结果:
利用super, 让执行print_info和say_something时调用D中print_info和say_something
class E(A, B, C, D):
def print_info(self):
super(C, self).print_info()
def say_something(self):
super(C, self).say_something()
obj = E()
obj.print_info()
obj.say_something()
运行结果: