Creating an Empty Class in Python
如果你想創建一個什麼都不做的Python class。 或者如果要創建一個空的class,則必須在該類中使用pass關鍵字。
# Python Class example class Employee: pass
以下示例向您展示如何宣告一個variable以及如何在類中創建一個method。
class Employee: Variable = Value def function_name(self): Statements …………..
Python class Object
在Python中,class object支援attribute reference和instantiation。 您可以使用任何一個來呼叫class attribute。 以下是instantiation和attribute reference的例子。
1. attribute reference使用ClassName.Variable_name或ClassName.function_name。
2. 對於instantiation,您必須創建該class的instance(或該class的copy)。 要創建instance,請使用instance_name = class_Name(),用instance_name.variable_name來呼叫variable而instance_name.method_name()用來呼叫method。
這裡,emp = Employee()正在創建一個instantiation,而emp.company在print中意謂著呼叫class variable。 接下來,Employee.company是attribute reference的例子。
class Employee: company = 'Tutorial Gateway' emp = Employee() print(emp.company) print("-------------") print(Employee.company)
在這個例子中,我們宣告了一個variable company,並定義了一個帶有self參數的function,用於印出歡迎消息。 接下來,我們為Employee class創建了一個object emp1。 通過使用此對象emp1,我們訪問company variable和func_message()。
在倒數兩個statement中,我們使用attribute reference來訪問variable值和function結果。 藉由使用attribute reference,您可以印出variable值。 但是,Employee.func_message返回function object,但不返回實際的function結果。
class Employee: company = 'Tutorial Gateway' def func_message(self): print('Welcome to Python Programming') emp = Employee() print(emp.company) emp.func_message() print("-------------") print(Employee.company) print(Employee.func_message)
Python __init() function
默認情況下,real-time的所有Python class都有__init __()函數。 使用此function可將值分配給object的property。 當您創建一個class的object時,它將自動呼叫__init __() function。 你不必另外呼叫它。
在這個例子中,我們在__init __() function中使用了簡單的print statement。 接下來,我們創建了一個Employee class的object。 如您所見,它直接印出訊息。
class Employee: company = 'Tutorial Gateway' def __init__(self): print('Hello World') def func_message(self): print('Welcome to Python Programming') emp1 = Employee() # Created an Instance print(emp1.company) emp1.func_message()
在這個範例中,我們將使用__init __() function去將值添加到class中的property。 在這裡,我們在function中使用了名稱,年齡,性別,並在下一行中分配了這些值。 這意味著,當您employee class的object時,您必須提供名稱,年齡和性別(同時創建object本身)。
例如,如果創建一個沒有參數值的對象emp1 = Employee(),則會引發錯誤。 TypeError:__ init __()缺少3個必需的位置參數:'name','age'和'gender'
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print('Welcome to Python Programming') emp1 = Employee('Mike', 25, 'Male') print(emp1.company) emp1.func_message() print(emp1.name) print(emp1.age) print(emp1.gender)
從上面的Python class範例中,可能會讓您混淆宣告參數,因為我們一直使用相同的名稱:name,age,gender。 但是,並非強制要求使用,但最佳做法是這樣做。
在這個例子中,我們使用n,a,gen作為__init__參數,名稱,年齡,性別作為self initialisation。
class Employee: company = 'Tutorial Gateway' def __init__(self, n, a, gen): self.name = n self.age = a self.gender = gen def func_message(self): print('Welcome to Python Programming') emp1 = Employee('Johnson', 29, 'Male') print(emp1.company) emp1.func_message() print(emp1.name) print(emp1.age) print(emp1.gender)
Multiple class Objects in Python
當您創建一個class的object或instance時,它將保存該class的copy而不是實際的class。 這意味著,您可以從單獨的class創建n個object,並且每個object可能具有不同的property值或method值。
在這個Python類範例中,我們創建了一個Employee class。 接下來,我們從該員工類創建了兩個object emp1和emp2。 如您所見,每個instance都有不同的名稱,年齡和性別。 接下來,我們將這些值印為輸出。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print('Welcome to Python Programming') emp1 = Employee('Mike', 25, 'Male') print(emp1.company) emp1.func_message() print(emp1.name) print(emp1.age) print(emp1.gender) print() emp2 = Employee('Tracy', 27, 'Female') print(emp2.company) emp2.func_message() print(emp2.name) print(emp2.age) print(emp2.gender)
該範例與上面相同。 但是,這次我們修改了func_message(self) function定義。 它接受名稱(instance variable)並附加到輸出訊息。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print(self.name + ' is learning Python Programming') emp1 = Employee('Mike', 25, 'Male') print(emp1.company) print(emp1.name) # Mike print(emp1.age) #25 print(emp1.gender) emp1.func_message() print() emp2 = Employee('Tracy', 27, 'Female') print(emp2.company) print(emp2.name) #Tracy print(emp2.age) # 27 print(emp2.gender) emp2.func_message()
正如您所看到的,emp1.func_message()將self.name替換為Mike,emp2.func_message()將自己替換為Tracy。
Modifying the Python Class Variable
在這個例子中,我們將向您展示如何使用class Objects修改class variable。 首先,我們宣告了一個company variable,以及印出歡迎訊息的function。 接下來,我們創建了Employee class的三個instance emp1,emp2和emp3。
接下來,我們使用Object_name.Variabel_name = New_Name來更改emp2和emp3 objects的company名稱。 這將更改這兩個instance的company名稱。 接下來,我們將從所有這三個instance中印出company variable。
class Employee: company = 'Tutorial Gateway' def func_message(self): print('Welcome to Python Programming') emp1 = Employee() emp2 = Employee() emp3 = Employee() emp2.company = 'Python' emp3.company = 'Apple' emp1.func_message() print(emp1.company) print(emp2.company) print(emp3.company) print(emp1.company)
Modify Python Object Properties
此範例顯示如何修改Python object property。 首先,我們使用創建了Employee class的instance emp1。 接下來,我們將值輸出。
這裡,emp1.name ='John'(object_name.property_name = New_Value)statement將現有的emp1名稱(Mike)更新為John。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print(self.name + ' is learning Python Programming') emp1 = Employee('Mike', 25, 'Male') print(emp1.name) print(emp1.age) print(emp1.gender) emp1.func_message() emp1.name = 'John' print(emp1.name) emp1.func_message()
您可以看到倒數兩個statement印出新名稱John。
Delete Python Object Properties
在這個Python class object範例中,我們將向您展示如何刪除object property。 為此,我們使用與上面相同的class。
這裡,emp1 = Employee('John',25,'Male')為Employee class創建一個instance emp1。 接下來,我們將從func_message() method印出名稱,年齡,性別和訊息。
接下來,我們使用del關鍵字刪除名為name(del instance_name.property_name)的emp1 object property。 在最後一個statement中,我們再次印出了我們刪除的emp1 object的name property。 如您所見,它顯示錯誤'Employee' object沒有attribute 'name'。 這意味著,我們成功刪除了object property。 同樣,您可以通過del emp1.gender刪除gender以及del emp1.age刪除年齡。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print(self.name + ' is learning Python Programming') emp1 = Employee('John', 25, 'Male') print(emp1.name) print(emp1.age) print(emp1.gender) emp1.func_message() del emp1.name print(emp1.name)
請記住,刪除instance property不會影響其他instance property。 這個Python class範例與上面相同。 但是,這次我們為Employee class創建了兩個Instance emp1和emp2。 接下來,我們使用del關鍵字刪除了emp1 object的name property。 接下來,我們印出emp2 instance和emp1 instance的名稱。
emp2.name將名稱返回為Nancy,但是emp1.name因為我們刪除它而拋出錯誤。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print(self.name + ' is learning Python Programming') emp1 = Employee('John', 25, 'Male') emp2 = Employee('Nancy', 27, 'Female') print(emp1.name) print(emp1.age) print(emp1.gender) emp1.func_message() del emp1.name print(emp2.name) print(emp1.name)
Delete Python Class Object
在這個例子中,我們使用的是我們在前面的例子中定義的相同class。 在這裡,首先我們創建一個Employee class的object,並顯示func_message() method中的employee姓名,年齡,性別和訊息。
接下來,我們使用del關鍵字刪除class object emp1(del Object_name)。 這將刪除我們之前創建的instance emp1。 在最後一個statement中,我們使用emp1 object呼叫func_message() method來檢查object是否仍然存在。 你可以從結果看到,它拋出的錯誤名稱'emp1'未定義。 這意味著,我們通過del statement刪除了emp1 object。
class Employee: company = 'Tutorial Gateway' def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def func_message(self): print(self.name + ' is learning Python Programming') emp1 = Employee('John', 25, 'Male') print(emp1.name) print(emp1.age) print(emp1.gender) emp1.func_message() del emp1 emp1.func_message()
Options for Creating Python class
在這個例子中,我們將向您展示在python中創建class的不同方法。 從下面的代碼中可以看出,您可以使用class_name,或class_name()或class_name(object)。
如果您仔細觀察object的生成,我們使用相同的方法為這三個class創建object。
class Employee: def __init__(self): print('Msg from Employee : Welcome to Tutorial Gateway') class Student(): def __init__(self): print('Msg from Student: Hello World!') class Person(object): def __init__(self): print('Msg from Person: Welcome to Python Programming') emp = Employee() std = Student() per = Person()
Python class self parameter
Python self參數注意到了對class的當前instance的reference。 我們必須使用這個self參數作為第一個參數,這有助於我們訪問屬於該class的variable。
如果你不喜歡關鍵字self,那麼你可以使用任何單字作為self parameter。 但是,它必須是第一個參數。 在這個Python class範例中,我們在第三個method function_msg中使用了suresh而不是self
class Employee: def __init__(self, name, age): self.name = name self.age = age def func_message(self): print(self.name + ' is learning Python Programming') def func_msg(suresh): print('Tutorial Gateway Welcome ' + suresh.name) emp1 = Employee('John', 25) emp1.func_message() emp1.func_msg()
參考
https://www.tutorialgateway.org/python-class/
沒有留言:
張貼留言