文章目录
1.定义一个类(不限定定义哪个类):
要求:
a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量
d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var
class Person:
country = "中国"
def __init__(self, age, name):
self.name = name
self.age = age
def dayin(self):
print(self.name, self.age)
def __str__(self):
return "this is a object"
def __add__(self, other):
return 2
person1 = Person("19", "小花")
person2 = Person("18", "小花")
print(person2 + person1)
person1.temp_var = "在长安区"
print(person1.temp_var)
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('print_info:AAA')
class B:
def print_info(self):
print('print_info:BBB')
def say_something(self):
print('say_something:BBB')
class C:
def say_something(self):
print('say_something:CCC')
class D:
def print_info(self):
print('print_info:DDD')
def say_something(self):
print('say_something:DDD')
class E(A, B, C, D):
def print_info(self):
# super() 将返回一个从 MRO 中 C 之后的类中查找方法的对象。
# super(E, self).print_info()
# 利用super,让执行print_info时调用B中print_info
super(A, self).print_info()
# 利用super, 让执行print_info和say_something时调用D中print_info和say_something
# super(C, self).print_info()
def say_something(self):
# super(E, self).say_something()
# 利用super, 让执行say_something时调用C中say_something
super(B, self).say_something()
# 利用super, 让执行print_info和say_something时调用D中print_info和say_something
# super(C, self).say_something()
e = E()
e.print_info()
e.say_something()
3.定义一个父类:
要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名
定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法
class Person:
def __init__(self, name, age, sex):
self._name = name
self.sex = sex
self.age = age
def __run(self):
print("会跑")
class Student(Person):
def __run(self):
print("学生会跑")
student1 = Student("小明", "18", "男")
print(student1._name)
student1._Person__run()
student1._Student__run()