亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在類中將參數傳遞給 __init__

如何在類中將參數傳遞給 __init__

慕工程0101907 2022-12-20 09:57:37
你好,我想__init__在 Python 的課堂上理解。我理解類是如何工作的,但我無法理解這里的一件事是代碼:class Computer:    def __init__(self, name, cpu, ram, hdd, ssd):        self.name = name        self.cpu = cpu        self.ram = ram        self.hdd = hdd        self.ssd = ssd    def config(self):        print("Configuration of computer is: ", self.name, self.cpu, self.ram, self.hdd, self.ssd )computer1 = Computer("HP ", "i7 ", "16gb ", "1TB ", "256GB")computer1.config()為什么以及如何自動Computer("HP ", "i7 ", "16gb ", "1TB ", "256GB")傳遞參數__init__(self, name, cpu, ram, hdd, ssd)?為什么我們將這個參數寫在類括號中而不是像這樣分開: computer1.__init__("HP ", "i7 ", "16gb ", "1TB ", "256GB")代碼如何理解必須將寫在 Computer 括號中的參數傳遞給__init__?
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

因為__init__方法在Python中大致就是代表一個構造函數。當您調用Computer("HP ","i7 ","16gb ","1TB ","256GB")Python 時,它會為您創建一個對象,并將其作為第一個參數傳遞給該__init__方法。任何其他參數(超過您聲明的五個)也將作為參數傳遞——在這種情況下會引發異常,因為構造函數不期望它們。



查看完整回答
反對 回復 2022-12-20
?
www說

TA貢獻1775條經驗 獲得超8個贊

這就是 python 的工作原理。可能它是這樣設計的,因為一些類/結構是用純 C 編寫的。

例如。當你想實現自定義類并為其實現len()功能時,你可以通過調用len(instance_of_your_class). 然后你所要做的就是__len__()在你的類中實現方法。
另一方面,你有listpython 類。這個類是用 C 實現的,因為它必須非常快。然后當你調用len(instance_of_list)interpreted 時會調用__len__,這將調用 C 中的 equavilent 函數。

這種設計帶來了很多好處。一個例子是方法__getitem__。您實施這樣您就可以使用instalce_of_class[2]. 但它也使您能夠使用inif value in instance_of_class)。

您可以閱讀有關此類方法的信息。在 python 術語中,它們是dunder方法。


查看完整回答
反對 回復 2022-12-20
  • 2 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號