Python就业班——初识面向对象——练习——Person

 1 #!/usr/bin/env python3
 2 # coding=utf-8
 3 # Version:python3.6.1
 4 # Project:practice
 5 # File:Person.py
 6 # Data:2020/7/11 15:58
 7 # Author:LGSP_Harold
 8 
 9 """
10 自定义两个类Person和Student,且Student继承自Person。Person
11 类主要描述人的姓名和性别两大基本特征。Student类除了保持父类的
12 基本属性之外还具有分数、主修两个公有属以及一个私有属性(学
13 号)。请根据上述的基本说明,对stu和stu_2两个对象的信息进行综
14 合展示。
15 
16 任务
17 1、自定义Person类,并重写其构造(初始化)方法__init__( ),将na
18 me和gender参数赋值给实例对象的属性
19 2、自定义实例方法speak( ),功能:打印“hello ! 我是xxx”。relati
20 on( )方法主要是占位作用,无其他实质性功能
21 3、自定义Student类,继承自Person类,并重写其构造(初始化)方
22 法__init__( ),name、gender参数通过调用父类的构造函数进行赋
23 值,score和major通过子类重写的 __init__( )进行赋值。
24 4、自定义实例方法speak( ),功能:打印 '我的学号为xxxxxxxxxx,
25 很高兴认识大家';
26 5、自定义实例方法identify_stu( ),功能:判断Student对象的学
27 号。若学号为2018014002,则打印‘我的分组已经完成’,反之则
28 打印‘请稍后,马上为你自动分组’;
29 6、自定义实例方法set_num( new_num),功能:将学号重写设置为n
30 ew_num;
31 7、自定义实例方法relation( ),功能:判断Student是否为Person的
32 子类。若成立,则打印‘我的父类是Person’,反之则打印‘父类正
33 在查询中······’
34 8、初始化实例对象stu和stu_2,并根据上述效果图调用对应方法
35 任务提示
36 Person类中的实例方法relation( )为占位功能时,其方法体可用pass语句代替
37 """
38 
39 
40 class Person(object):
41 
42     def __init__(self, name, gender):
43         self.name = name
44         self.gender = gender
45 
46     def speak(self):
47         print('我是{0}'.format(self.name))
48 
49     def relation(self):
50         pass
51 
52 
53 class Student(Person):
54 
55     def __init__(self, name, gender, score, major, number=2018014002):
56         super().__init__(name, gender)
57         self.score = score
58         self.major = major
59         self.__number = number
60 
61     def speak(self):
62         super(Student, self).speak()
63         print('我的学号{0}'.format(self.__number))
64 
65     def identify_stu(self):
66         if self.__number == 2018014002:
67             print('分组已经完成')
68         else:
69             print('马上分组')
70 
71     def set_num(self, new_num):
72         self.__number = new_num
73 
74     def relation(self, class_son, class_father):
75         if issubclass(class_son, class_father):
76             print('父类为:Person')
77         else:
78             print('父类查询中')
79 
80 
81 if __name__ == '__main__':
82     stu = Student('Jim', '', 99, '数学')
83     stu.speak()
84     stu.identify_stu()
85     stu.relation(Student, Person)
86     print('*'*18)
87     stu_2 = Student('Leslie', '', 81, '英语')
88     stu_2.set_num(2018040625)
89     stu_2.speak()
90     stu_2.identify_stu()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章