关于类的学习(五) — Python标准库和类编码风格

180 阅读3分钟

1.Python标准库

Python标准库是一组模块,安装的Python都包含它。你现在对类的工作原理已有大致的了解,可以开始使用其他程序员编写好的模块了。可使用标准库中的任何函数和类,为此只需在程序开头包含一条简单的import语句。
下面来看模块collections中的一个类——OrderedDict
字典让你能够将信息关联起来,但它们不记录你添加键—值对的顺序。要创建字典并记录其中的键—值对的添加顺序,可使用模块collections中的OrderedDict类。OrderedDict实例的行为几乎与字典相同,区别只在于记录了键—值对的添加顺序。 我们再来看一看第6章的favorite_languages.py示例,但这次将记录被调查者参与调查的顺序:

from collections import OrderedDict 
favorite_languages = OrderedDict()
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
for name, language in favorite_languages.items():
    print(name.title()+"'s favorite language is "+
        language.title()+".")

我们首先从模块collections中导入了OrderedDict类。我们创建了OrderedDict类的一个实例,并将其存储到favorite_languages中。请注意,这里没有使用花括号,而是调用OrderedDict()来创建一个空的有序字典,并将其存储在favorite_languages中。接下来,我们以每次一对的方式添加名字—语言对。我们遍历favorite_languages,但知道将以添加的顺序获取调查结果:

Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Phil's favorite language is Python.

这是一个很不错的类,它兼具列表和字典的主要优点(在将信息关联起来的同时保留原来的顺序)。等你开始对关心的现实情形建模时,可能会发现有序字典正好能够满足需求。随着你对标准库的了解越来越深入,将熟悉大量可帮助你处理常见情形的模块。
注意:你还可以从其他地方下载外部模块。

2.类编码风格

你必须熟悉有些与类相关的编码风格问题,在你编写的程序较复杂时尤其如此。
类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。
可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。
需要同时导入标准库中的模块和你编写的模块时,先编写导入标准库模块的import语句,再添加一个空行,然后编写导入你自己编写的模块的import语句。在包含多条import语句的程序中,这种做法让人更容易明白程序使用的各个模块都来自何方。

3.小结

①如何编写类。
②如何使用属性在类中存储信息,以及编写方法,让类具备所需的行为。
③如何编写方法__init__(),以便根据类创建包含所需属性的实例。
④如何修改实例的属性——包括直接修改以及通过方法进行修改。
⑤使用继承可简化相关类的创建工作。
⑥将一个类的实例用作另一个类的属性可让类更简洁。
⑦通过将类存储在模块中,并在需要使用这些类的文件中导入它们,可让项目组织有序。
⑧你学习了Python标准库,并见识了一个使用模块collections中的OrderedDict类的示例。
⑨编写类时应遵循的Python约定。