有这样一个说法:“养育一个孩子需要一个村庄。”同样,写一本书也需要一个“村庄”。而本书的写作涉及了多个“村庄”!
Python社区成员,尤其是来自Libera在线聊天室#python频道的朋友们,他们从我第一次使用Python实现“Hello, world!”程序以来就一直在支持我,并为我提供信息和挑战。我大部分的Python知识可以追溯到那个聊天室里的朋友们,感谢他们在我写作本书的整个过程中提供的所有反馈和建议。
我非常感谢Forem和DEV社区对我的文章,尤其是构成本书框架的系列文章的热情对待。特别感谢DEV联合创始人Ben Halpern和Jess Lee以及社区经理Michael Tharrington对我的鼓励和对我的文章的推广。如果不是因为我有幸获得了知名度和积极的反馈,我永远不会考虑写这本书。
特别感谢本书严谨的技术审校团队成员Steven Bingler、Denis Pobedrya(网名deniska)、Ryan Palo、Daniel Foerster(网名pydsigner)和Simon de Vlieger(网名supakeen)。此外,Andrew Svetlov让我对不断变化的异步格局有了深刻的了解;Python Packaging Authority团队的Bernát Gábor帮助我确保本书关于封装的内容足够吸引人;Kyle Altendorf(网名altendky)教会了我基于src的项目结构的价值,并对本书面向对象编程的内容提供了反馈;James Gerity(网名SnoopJ)帮助我消除了关于多继承的内容中的歧义;Gil Gonçalves、grym和TheAssassin进行了额外的技术审校。我无法一一列举所有为本书提建议的人。一切尽在不言中。
特别感谢本书的编辑,他的热情使我有信心编写本书。
感谢我在Python社区、Ubuntu社区、MousePaw Media、Canonical及其他社区的所有朋友,尤其是Naomi Ceder、Richard Schneiderman(网名johnjohn101)、James Beecham、Laís Carvalho、Cheuk Ting Ho、Sangarshanan Veera、Raquel Dou、David Bush、John Chittum、Pat Viafore、Éric St-Jean、Chloé Smith、Jess Jang、Scott Taylor、Wilfrantz Dede、Anna Dunster、Tianlin Fu、Gerar Almonte、LinStatSDR和leaftype。每当收到你们对本书进展的询问,我都感受到了莫大的鼓舞!
最后,当然也是最重要的,我要感谢我的亲人和朋友,感谢他们无尽的支持。我的母亲Anne McDonald提供了宝贵的编辑和创意反馈,她教会了我关于写作的知识,并且从我出生起就一直在鼓励我实现梦想。感谢我最好的朋友Daniel Harrington,我们就像是互相约定并分别写出了《指环王》和《纳尼亚传奇》的Tolkien和Lewis。非常感谢我的朋友Jaime López(网名Tacoder)。感谢Bojan Miletić,他和我一样,也是 The Bug Hunters Café 的主持人之一,感谢他的无限热情和支持。对我亲爱的阿姨且自称我头号粉丝的Jane McArthur,以及和我一起“制造麻烦”的搭档Chris“Fox”Frasier深表爱意和感激——我非常想念他们。