Python附带了一大堆标准模块,实现了广泛的功能,包括文本处理,各种数据类型,网络内容(低级和高级),文档处理,文件存档处理,日志记录所有这些都记录在Python库文档中,因此必须至少浏览可用模块列表,因此您可以获得默认情况下可以使用的概念。示例:如果您没有任何性能需求,请不要在Twisted上引入依赖项来实现非常基本且简单的自定义HTTP服务器,请使用BaseHTTPServer和衍生项。
Python是Python,不要试图模仿来自其他语言的错误编码模式
Python是一种成熟的编程语言,它提供了很大的灵活性,但也有一些非常具体的模式,你可能不知道以前使用过的其他语言。
举个例子,根本不要试图模仿PHP的’include’或’require’函数。这可以通过在顶层的模块中编写要包含(并在包含上执行)的代码(即不在函数/ classes / …中),并使用类似’from foo import *’的内容来完成。你想要执行这个代码。这可行,但可能很难维持这一点。模块不应该像这样使用,所以不要这样。如果您需要在某个时刻执行某些代码,请将其作为函数放入模块中,导入该函数并在任何位置调用它。
不要污染全局命名空间
不要使用’from foo import *’,因为这会引入foo中定义的所有内容,还会引入foo中导入的所有模块,甚至可能导入它们等等。尝试’import foo’和使用foo.whatever,或者使用’from foo import whatever,somethingelse’。显式导入使代码更具可读性,并且可以更容易地确定在当前模块中使用的模块中定义的内容,如果它是由您的许多全局导入之一导入的话。
使用Pythonesque编码模式
这显然与前一项非常相关。Python有一些众所周知的结构来处理某些情况。了解并理解它们。
记录您的代码
Python具有称为docstrings的强大语言功能。严格地将它们洒在整个代码中。在编写函数/类时执行此操作,而不是之后。每个人都知道这非常无聊和令人沮丧。
写测试
编写测试代码。Python包括至少2种编写测试的方法:使用标准单元测试,或使用doctests,包含在文档字符串中的测试代码片段,既有用又有说明性。如果您无法测试结果,则无法知道某些代码重构是否顺利。