1.定义一个类(不限定定义哪个类):
要求:
a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量
d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var
class Student:
school_name = '清华'
def __init__(self, name, number, age):
self.name = name
self.number = number
self.age = age
def print_info(self):
print('类变量', Student.school_name)
print('对象变量', self.name, self.number, self.age)
def __str__(self):
return "This is a object"
def __add__(self, other):
return 2
zhangsan = Student('zhangsan', 1001, 18)
lisi = Student('lisi', 1002, 20)
print(zhangsan)
zhangsan.print_info()
result = zhangsan + lisi
print(result)
lisi.temp_var = None
print(lisi.temp_var)
#结果
This is a object
类变量 清华
对象变量 zhangsan 1001 18
2
None
2.super的使用:
定义一个类A, 里面又一个方法print_info
定义一个类B, 里边有一个方法print_info和一个方法say_something
定义一个类C, 里边有一个方法say_something
定义一个类D, 里边有一个方法print_info和一个方法say_something
定义一个类E,继承类A, 类B, 类C,类D
class A:
def print_info(self):
print('This is func print_info A')
pass
class B:
def print_info(self):
print('This is func print_info B')
def say_something(self):
print('This is func say_something B')
pass
class C:
def say_something(self):
print('This is func say_something C')
pass
class D:
def print_info(self):
print('This is func print_info D')
def say_something(self):
print('This is func say_something D')
class E(A, B, C, D):
pass
实例化类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
e = E()
e.print_info()
# This is func print_info A
e.say_something()
# This is func say_something B
3.定义一个父类:
要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名
定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法
class Person:
country = 'China'
def __init__(self):
self.name = None
self.age = 10
self._sex = '男'
def __method(self):
print('This is __func in Person')
class Student(Person):
def __method(self):
print('This is __func in Student')
pass
zhangsan = Student()
print(zhangsan._sex)
zhangsan._Person__method()
zhangsan._Student__method()