這個問題在這里已經有了答案: 物件和實體之間的區別 (15 個回答) 昨天關閉。
我是編程新手并試圖理解術語實體。我發現這是一個奇怪的詞,我似乎無法從語言上掌握。IE。即使你從未聽說過心理學這個詞,你也能很快掌握它,因為你可以理解“psyco”指的是“心理條件”,而“ology”指的是“對某事的研究”。
但是編程中的“實體”是如此模糊。它是一種物件。好吧,太好了,但我對物件的理解仍然模糊且缺乏經驗,所以我在概念上沒有任何關聯。
如果具有非技術背景的人可以在不使用“實體”一詞的情況下用英語解釋“實體”,或者只是說它是一種物件,那就太好了。
也許有人可以解釋他們的作業。關于它們是什么(我不明白)有很多解釋,從它們實際做什么的角度來看沒有答案。
在此先感謝那些試圖回答的人!
uj5u.com熱心網友回復:
我認為它是抽象思想(物件)的“發生”。舉個例子(請多多包涵)——柏拉圖式的椅子,自然界中存在的椅子(或椅子的實體)將是餐廳椅子,我可以通過進入我的家庭辦公室的入口看到它。換句話說,柏拉圖式椅子是理想(或理想)椅子——只存在于我們腦海中的椅子,但我可以看到(和觸摸)的餐廳椅子就是實體。因此,我們可以將實體視為抽象思想的具體示例。
uj5u.com熱心網友回復:
將類視為創建物件的藍圖。藍圖是詳細的照片列印,顯示將如何構建某物。想想房子的藍圖。這個藍圖可以被認為是一個類。使用相同的藍圖,我們可以創建多個房屋,可以將其視為物件。并且根據該藍圖建造的每個物件或房屋都是該藍圖的一個實體。
讓我們上一個“員工”類。您可以將其視為真實世界物體員工的模板。這個類有兩件事與之相關:屬性和行為。類“雇員”將具有與其關聯的某些屬性,例如名字、姓氏和薪水。類似地,“員工”類將具有與其關聯的某些行為,例如創建全名、申請加薪等。
物件是類的特定實體。如果 'Employee' 是我們的類,那么 'Mario Rossi'、'Ashley Brown' 和 'Gunther Schafer' 將是該類的特定實體,或者換句話說,這些將是類 'Employee' 的物件。
創建類和類的實體
在下面的示例中,我們創建了一個名為 Employee 的類。然后,我們創建該類的兩個物件(emp1 和 emp2)或實體。
class Employee:
pass
emp1 = Employee()
emp2 = Employee()
print(emp1)
print(emp2)
如果你列印這些物件,你會得到:
<__main__.Employee object at 0x000002297B231A00>
<__main__.Employee object at 0x000002297B1A8970>
這實質上表明創建的兩個物件是唯一的實體,因為它們在記憶體中的位置不同。
類物件就位后,我們現在可以為每個員工手動創建實體變數。例如,我們希望 emp1 和 emp2 具有名字、姓氏、電子郵件和工資。您需要做的就是設定實體變數并傳遞它們的唯一屬性。現在每個實體變數都有自己獨特的屬性,您可以列印出您想要的資訊。
class Employee:
pass
emp1 = Employee()
emp2 = Employee()
emp1.fname = 'Mario'
emp1.lname = 'Rossi'
emp1.email = '[email protected]'
emp1.wage = 100000
print(emp1.email)
print(emp1.wage)
輸出:
[email protected]
100000
到目前為止,代碼看起來不錯,但并不實用。通過手動設定每個變數,我們不僅容易出錯,而且我們也沒有利用類的力量。相反,我們將使用一個名為init ()的特殊函式。這個函式是一個建構式,我們將在它們被創建時為物件屬性賦值。
class Employee:
def __init__(self,fname,lname,wage):
self.fname = fname
self.lname = lname
self.wage = wage
self.email = f"{fname}.{lname}@company.com"
emp1 = Employee('Mario','Rossi',100000)
emp2 = Employee('Jane','Smith',70000)
print(emp1.email)
print(emp1.wage)
輸出:
[email protected]
100000
當我們創建 Employee 類的實體時,我們可以傳入我們在init ()函式中指定的值。現在我們的init ()函式接受我們稱之為 self 的實體。Self 必須始終是第一個引數。使用init ()函式給物件屬性賦值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/399043.html
上一篇:可選陣列中缺少Swift資料
下一篇:如何使一個班級只對另一個班級公開
