第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

類型錯誤:缺少 1 個必需的位置參數(shù):“self”與導入期間作為別名

類型錯誤:缺少 1 個必需的位置參數(shù):“self”與導入期間作為別名

飲歌長嘯 2023-12-12 21:21:13
self我是在另一個 python 文件中定義和調用函數(shù)的新手。我正在使用Python 3.7。假設我有兩個 python 文件,一個包含類(name.py),另一個在另一個文件(test.py)中調用此類函數(shù)。我試圖理解為什么 python 在 Try#1 中顯示錯誤,但在 #2 中卻沒有顯示錯誤?Try#1 定義為別名,但這有什么作用呢?好像沒有初始化吧?具有類函數(shù)的主文件:name.pyclass NameEmployee:    def __init__(self):        pass    def first_name(self,x):        return print('Hello ',x,'!')要運行的文件:test.py嘗試#1:不起作用from names import NameEmployee as nene.first_name(x = 'John') 結果 --> TypeError:first_name() 缺少 1 個必需的位置參數(shù):'self'嘗試#2:工作from names import NameEmployeene = NameEmployee()ne.first_name(x = 'John')結果 --> 你好約翰!
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

重要的是要確定這與“別名”無關,而是簡單的事實,即這兩段代碼不相等!


讓我們從簡化第二次嘗試開始。我們將簡單地刪除中間變量的使用,以獲得:


from names import NameEmployee

NameEmployee().first_name(x='John')

現(xiàn)在,進行第一次嘗試,讓我們暫時刪除別名:


from names import NameEmployee

NameEmployee.first_name(x='John')

現(xiàn)在您可以清楚地看到差異:第二次嘗試實際上調用(使用這些())構造函數(shù),從而隱式傳遞self新創(chuàng)建的實例。


但是第一次嘗試first_name直接從類調用該方法,而不是類的實例self,因此永遠不會傳遞(NameEmployee().first_name(x='John')相當于NameEmployee.first_name(NameEmployee(), x='John')whileNameEmployee.first_name(x='John')就是它的本質 - 調用first_name而不傳遞self...)。


讓我們進行逆向工程:


我們現(xiàn)在要調用構造函數(shù),如 try 2:


from names import NameEmployee

NameEmployee().first_name(x='John')

現(xiàn)在我們要別名:


from names import NameEmployee as ne

ne().first_name(x='John')

(請記住,別名只是名稱替換)


現(xiàn)在,如果您愿意,可以將對象分離到一個新變量:


from names import NameEmployee as ne

name_employee = ne()

name_employee.first_name(x='John')


查看完整回答
反對 回復 2023-12-12
  • 1 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號