例如,我現在正在學習wxPython的,特別是類的初始化函數:學習新模塊時,我應該記住函數參數的順序嗎?
__init__(self, parent, id=-1, label=EmptyString, pos=DefaultPosition,
size=DefaultSize, style=0, name=StaticTextNameStr)
由於良好的編程習慣的問題,我應該記住的參數,或者只需將關鍵字的順序和調用函數每次使用關鍵字?爲了可讀性做後者更好嗎?
例如,我現在正在學習wxPython的,特別是類的初始化函數:學習新模塊時,我應該記住函數參數的順序嗎?
__init__(self, parent, id=-1, label=EmptyString, pos=DefaultPosition,
size=DefaultSize, style=0, name=StaticTextNameStr)
由於良好的編程習慣的問題,我應該記住的參數,或者只需將關鍵字的順序和調用函數每次使用關鍵字?爲了可讀性做後者更好嗎?
記憶?不。這是文檔(包括源代碼)的用途。這就是說,有時使用關鍵字參數有助於代碼的清晰度,尤其是對於需要大量參數的函數。而且你應該總是努力寫出清晰的代碼,特別是在Python中,源代碼旨在補充文檔。
您需要查看實際的函數簽名,而不僅僅是文檔聲明它應該是什麼。由於該方法被宣佈爲__init__(self, *args, **kwargs)
,因此其他人必須由關鍵字通過任何方式調用,因此唯一與位置有關的人是parent
。您可能想遵循文檔中給出的關鍵字順序,只是爲了在您或其他人再次查看代碼時減少驚喜數量。
莫扎特可能會記住現代的軟件庫。我們其他人依靠智能IDE完成代碼和參考文檔。這就是說,是的,你應該閱讀文檔,看看有什麼,甚至可以做筆記。一個寫得很好的API(例如Apple的庫)的設計使得名稱和原型具有意義並且堅持與讀者。
例如
int main(int argc, char *argv[]);
-(void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
等等。一個好的面試官會要求你做一些這樣的事情(這樣他就知道你不會花一整天的時間學習API),但如果你不記得每一個參數,也會給你一些寬容。