在学习新模块时,我应该记住函数参数的顺序吗?

时间:2012-02-18 05:59:03

标签: python function

例如,我现在正在学习wxPython,特别是类'init函数:

__init__(self, parent, id=-1, label=EmptyString, pos=DefaultPosition,
 size=DefaultSize, style=0, name=StaticTextNameStr) 

作为良好的编程习惯,我应该记住参数的顺序,还是只记住关键字并每次使用关键字调用函数?为了便于阅读,后者是否更好?

3 个答案:

答案 0 :(得分:4)

记忆?不。这就是文档(包括源代码)的用途。

话虽如此,有时使用关键字参数有助于代码清晰度,特别是对于需要大量参数的函数。而且你应该总是努力编写清晰的代码,特别是在Python中,源代码是为了补充文档。

答案 1 :(得分:2)

您需要查看实际的功能签名,而不仅仅是文档声​​称它应该是什么。由于该方法被声明为__init__(self, *args, **kwargs),因此唯一对位置有用的是parent,因为其他方法必须通过关键字调用。您可能希望遵循文档中给出的关键字顺序,只是为了减少您或其他人再次查看代码时的意外情况。

答案 2 :(得分:0)

莫扎特也许可以记住现代软件库。我们其他人依赖于代码完成的智能IDE和参考文档。话虽这么说,是的,你应该阅读文档,看看有什么,甚至可以做笔记。一个编写良好的API(例如Apple的库)的设计使得名称和原型具有意义并且与读者保持一致。

e.g。

int main(int argc, char *argv[]);
-(void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;

等等。一个好的面试官会要求你做一些这些(这样他知道你不会花一整天的时间学习API),但如果你不记得每一个参数,也会给你一些宽容。