2022年 11月 9日

轻松学会python的定义使用

目录

1.定义一个类(不限定定义哪个类):

2.super的使用:

3.定义一个父类:


1.定义一个类(不限定定义哪个类):

要求:

a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量
d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2

  1. class Person:
  2. country = 'china'
  3. def __init__(self, name, age, gender):
  4. self.name = name
  5. self.age = age
  6. self.gender = gender
  7. def print_info(self, country, name, age, gender):
  8. print('class:' + country, 'obj:' + name, age, gender)
  9. def __str__(self):
  10. return 'this is a object'
  11. def __add__(self, other):
  12. return 2
  13. per1 = Person('小明', 22, '男')
  14. per2 = Person('小红', 16, '女')
  15. print(per1.name, per1.age, per1.gender)
  16. print(per2.name, per2.age, per2.gender)
  17. per1.print_info('1班', '小明', 22, '男')
  18. per2.print_info('1班', '小红', 16, '女')
  19. print(per1 + per2)
  20. print(per1.__str__(), '---', per2.__str__())
  21. per1.temp_var = 10
  22. print(per1.temp_var)
  23. 小明 22
  24. 小红 16
  25. class:1班 obj:小明 22
  26. class:1班 obj:小红 16
  27. 2
  28. this is a object --- this is a object
  29. 10

f.为对象添加一个临时变量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

  1. class A:
  2. def print_info(self):
  3. print('print_info A')
  4. class B:
  5. def print_info(self):
  6. print('print_info B')
  7. def say_something(self):
  8. print('say_something B')
  9. class C:
  10. def say_something(self):
  11. print('say_something C')
  12. class D:
  13. def print_info(self):
  14. print('print_info D')
  15. def say_something(self):
  16. print('say_something D')
  17. class E(A, B, C, D):
  18. def print_info(self):
  19. super(A, E).print_info(self)
  20. def say_something(self):
  21. super(B, E).say_something(self)
  22. super(C, E).print_info(self)
  23. super(C, E).say_something(self)
  24. pass
  25. obj_E = E()
  26. obj_E.print_info()
  27. obj_E.say_something()
  28. print_info B
  29. say_something C
  30. print_info D
  31. say_something D

3.定义一个父类:

要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名
定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法

  1. class Person:
  2. def __init__(self):
  3. self._name = '小明'
  4. self.age = 0
  5. self.__gender = "1"
  6. def get_info(self):
  7. print("get_info")
  8. def _get_score(self):
  9. print("get_score")
  10. def __get_url(self):
  11. print("get_url")
  12. pass
  13. class Student(Person):
  14. def __get_url(self):
  15. print("Student Get Url")
  16. pass
  17. sto = Student()
  18. print(sto._name)
  19. print(sto._Person__gender)
  20. sto._Student__get_url()
  21. sto._Person__get_url()
  22. 小明
  23. 1
  24. Student Get Url
  25. get_url