python3報錯: takes 1 positional argument but 2 were given 問題解決。

使用python3的時候,剛開始使用,把所有的都寫在了一個文件中,這不符合類的六大設計原則。就把原來的代碼按照類進行了拆分。

關於類的六大設計原則:開放關閉原則,里氏替換原則,依賴倒轉原則,接口隔離原則,迪米特原則。這裏不作過多的解釋,大家可以自行百度。

拆分完之後,使用main方法進行實例調用的時候,發現一直報錯“ takes 1 positional argument but 2 were given ”。

代碼合到一個文件又是好的,這逗我了這是!

看代碼,確實又只定義了一個參數。

後來從網上找了個示例下來對比,發現調用類文件的def中,別人比我的代碼中多了個參數self。

上網查了查,網上說,類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱,但是在調用這個方法的時候你不爲這個參數賦值,Python會提供這個值。這個特別的變量指對象本身,按照慣例它的名稱是self。

簡單來說就是,第一個參數是對象本身,這個是必須的。

在類方法加上第一個參數self。再啓動調試。OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章