总体原则价值“为您想要使用的其他人构建工具。”-KennethReitz“简洁总是胜过可用性。”-PieterHintjens“满足90%的使用场景。忽略那些拒绝的人。”——KennethReitz“美丽总比丑陋好。”-PEP20为开源开发(甚至是闭源项目)。一般开发指南“显式优于隐式”。-PEP20“易于阅读是有代价的。”-PEP20“任何人都可以打补丁。”-可汗学院开发文档错误的决定或低质量的编码),立即修复。“现在做总比不做好。”-PEP20“测试应该彻底。编写新功能文档。”人为驱动的开发比测试驱动的开发更重要。(译者:原文EvenmoreimportantthatTest-DrivenDevelopment--Human-DrivenDevelopment,译者认为moreimportantthatshouldbemoreimportantthan,应该是作者错别字了,否则意思不成立感觉,)这些指南可能——应该可能——会改变。当特定的指南样式感觉合理时,请遵循PEP8。命名变量、函数、方法、包、模块小写并使用下划线分隔单词(lower_case_with_underscores)类、异常大写(CapWords)受保护的方法和内部函数以单个下划线开头(_single_leading_underscore(self,...))private方法开始withadoubleunderscore(__double_leading_underscore(self,...))常量字母全部大写,单词用下划线分隔(ALL_CAPS_WITH_UNDERSCORES)一般命名准则尽量不要使用只有一个字母的变量名(例如,l,I,O,ETC。)。例外:在非常短的代码块中,如果变量名的含义从上下文中显而易见就可以了。元素中的e没有问题:e.mutate()避免重复变量名。正确的方式importaudiocore=audio.Core()controller=audio.Controller()错误的方式importaudiocore=audio.AudioCore()controller=audio.AudioController()“反向标记”更好。正确的方式elements=...elements_active=...elements_defunct=...错误的方式elements=...active_elements=...defunct_elements...避免使用getter和setter方法。正确的方式person.age=42错误的方式person.set_age(42)使用4个空格进行缩进——永远不要使用Tab制表符。就这样。模块引用指的是整个模块,而不是模块内的单个标识符。例如,假设在一个cantee模块下有一个sessions.py文件。正确的方法是importcanteenimportcanteen.sessionsfromcanteenimportsessions错误的方法是fromcanteenimportget_user#Symbolfromcanteen/__init__.pyfromcanteen.sessionsimportget_session#SymbolExceptionforfromcanteen/sessions.py:如果第三个的文档-方代码明确指出需要单一参考。原因:避免循环引用。看这里。将代码参考部分放在文件的顶部,按以下顺序分为三个部分,每个部分之间有一个空行。1.系统引用2.第三方引用3.本地引用原因:清晰展示各模块的引用来源。文档遵循??PEP257提出的文档字符串指南。reStructuredText(reST)和Sphinx有助于确保文档符合标准。对于明显的功能,写一个单行文档字符串。"""返回``foo``的路径名。"""多行文档字符串应包括:单行摘要,如果适用,描述使用场景参数返回的数据类型和语义信息,除非返回None"""训练a区分Foo和Bar的模型Usage::>>>importklassify>>>data=[("green","foo"),("orange","bar")]>>>classifier=klassify.train(data):paramtrain_data:形式为(color,label)的元组列表。:rtype:A:class:Classifier
