Ostatnio aktywny 10 months ago

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

timmy zrewidował ten Gist 10 months ago. Przejdź do rewizji

Brak zmian

timmy zrewidował ten Gist 10 months ago. Przejdź do rewizji

1 file changed, 68 insertions

person_employee_inheritance.py(stworzono plik)

@@ -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)
Nowsze Starsze