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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用* args和** kwargs而不是顯式列出預(yù)期參數(shù)

使用* args和** kwargs而不是顯式列出預(yù)期參數(shù)

藍(lán)山帝景 2021-05-06 21:50:58
當(dāng)我在一個(gè)有很多嵌套函數(shù)調(diào)用和對(duì)象層次結(jié)構(gòu)的項(xiàng)目中工作時(shí),我想知道什么是將所有必需的參數(shù)傳遞到最高層,再?gòu)哪抢镏鸩絺鬟f到較低層的最佳實(shí)踐。示例:3個(gè)類及其所需的(構(gòu)造函數(shù))參數(shù):A級(jí):a,bB類:c,d,eC級(jí):f類A持有B的一個(gè)實(shí)例,而B持有C的一個(gè)實(shí)例。它們?cè)诟髯愿讣?jí)的構(gòu)造函數(shù)中初始化。因此,這意味著使用我的代碼的人將只初始化A的新對(duì)象,并且必須將所有參數(shù)a,b,c,d,e,f傳遞給A,然后在該參數(shù)處對(duì)其進(jìn)行處理或進(jìn)一步分發(fā)。示例代碼:class A(object):    def __init__(self, a, b, c, d, e, f):        b = B(c, d, e, f)class B(object):    def __init__(self, c, d, e, f):        c = C(f)class C(object):    def __init__(self, f):        pass我的第一個(gè)嘗試是直接在構(gòu)造函數(shù)中列出類及其所有子級(jí)需要的所有參數(shù),但這很容易出錯(cuò),并且具有很高的代碼冗余性,尤其是在每一層提供默認(rèn)值時(shí)。所以我正在考慮使用** kwargs和* args代替。這樣的好處是,我可以將那些參數(shù)傳遞給孩子,并且每一層都可以從那里獲取所需的參數(shù)。但是,缺點(diǎn)是希望使用此層次結(jié)構(gòu)的類的人無法使用IDE的自動(dòng)完成功能來查看期望的參數(shù)。在Python 3中,什么被認(rèn)為是最佳實(shí)踐?
查看完整描述

2 回答

  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)