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()

 

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