Dernière activité 10 months ago

這段程式碼示範了 Python 的類別繼承機制,透過 Person(人)和 Employee(員工)類別,展現子類別如何繼承父類別的屬性與方法,並添加自己的功能。

timmy a révisé ce gist 10 months ago. Aller à la révision

Aucun changement

timmy a révisé ce gist 10 months ago. Aller à la révision

1 file changed, 68 insertions

person_employee_inheritance.py(fichier créé)

@@ -0,0 +1,68 @@
1 + # 定義 Person 類別
2 + class Person:
3 + # 定義建構子
4 + def __init__(self, name):
5 + # 設定人的名字
6 + self.name = name
7 +
8 + # 定義取得人的名字的方法
9 + def get_name(self):
10 + """取得人的名字"""
11 +
12 + # 回傳人的名字
13 + return self.name
14 +
15 +
16 + # 定義 Employee 類別,繼承自 Person 類別
17 + class Employee(Person):
18 + # 定義建構子
19 + def __init__(self, name, staff_id):
20 + # 呼叫父類別的建構子,設定人的名字
21 + Person.__init__(self, name)
22 + # 設定員工的員工編號
23 + self.staff_id = staff_id
24 +
25 + # 定義取得完整員工識別資料的方法
26 + def get_full_id(self):
27 + """取得完整員工識別資料"""
28 + # 取得人的名字
29 + name = self.get_name()
30 + # 將人的名字與員工編號合併成員工的完整識別資料
31 + full_id = name + ", " + self.staff_id
32 +
33 + # 回傳員工的完整識別資料
34 + return full_id
35 +
36 +
37 + # 建立一個 Person 物件,並設定名字為 Bill
38 + person = Person("Bill")
39 +
40 + # 建立一個 Employee 物件,並設定名字為 John、員工編號為 A23
41 + employee = Employee("John", "A23")
42 +
43 + # 測試 person 物件的 get_name 方法,應該回傳 Bill
44 + assert person.get_name() == "Bill"
45 +
46 + # 測試 employee 物件的 get_name 方法,應該回傳 John
47 + assert employee.get_name() == "John"
48 +
49 + # 測試 employee 物件的 get_full_id 方法,應該回傳 John, A23
50 + assert employee.get_full_id() == "John, A23"
51 +
52 + # 測試 Employee 類別是否為 employee 物件的父類別
53 + assert isinstance(employee, Employee)
54 +
55 + # 測試 Person 類別是否為 employee 物件的父類別
56 + assert not isinstance(person, Employee)
57 +
58 + # 測試 Person 類別是否為 person 物件的父類別
59 + assert isinstance(person, Person)
60 +
61 + # 測試 Person 類別是否為 employee 物件的父類別
62 + assert isinstance(employee, Person)
63 +
64 + # 測試 Employee 類別是否為 Person 類別的子類別
65 + assert issubclass(Employee, Person)
66 +
67 + # 測試 Person 類別是否為 Employee 類別的子類別
68 + assert not issubclass(Person, Employee)
Plus récent Plus ancien