2010-02-28 42 views
27

我正在对Python进行一些介绍,但重点关注Python和Python之间的生态系统,而不仅仅是语言。有了如何像计算机科学家和其他伟大的教程一样思考,很容易熟悉这门语言,但是在我知道什么是The Cheese Shop或PyPi的故事之前,我花了相当长的一段时间, virtualenv的工作,为什么你应该使用它们,你应该去哪里寻求帮助,你应该关注的有趣的博客,你的代码应该看起来如何(PEP 8,编写pythonic代码)等等。 '软的东西'。Python新手应该了解其社区和生态系统?

当你刚开始使用Python时,最让你困惑的是什么?是否有某些你想知道的事情,或者你希望你会比以前更早发现的资源?要了解的人?

我在StackOverflow上发现了一些类似的问题(例如here),但没有真正接近我想要从你们那里听到的东西。希望这个问题并不感到太主观你的口味:-)

(而且,如果你想帮忙,随时发送邮件。)

+6

非常有趣的问题,但如果你不想被骚扰,使它成为社区维基。 – 2010-02-28 17:11:56

+0

感谢您的建议,提出了一个社区维基的问题。 – 2010-02-28 19:21:24

+0

@ e-satis:自我实现的预言? :) – 2010-03-02 16:25:20

回答

9

“当你刚开始使用Python时,最让你感到困惑的是什么?”

学习Python的规则2:任何你认为你想要的通用模块或框架已经写好了。几次。

难的是实现你的想法是

  1. 不是唯一的。

  2. 在开始思考它之前,它已经得到改善。

  3. 已发布某处。

因此,代码少,搜索更多。广泛而灵活地搜索,直到找到与您想要做的事情类似的事情。

  • 认识到你可能有一个你认为是描述性的名字。但其他人可能会说这是不同的。加入社区,采用他们的命名。你可能不喜欢“ORM”这个词,但这就是它的名字。

  • 认识到你的想法,不管听起来有多听起来,可能真的很差。当你发现一个似乎具有“不必要的额外功能”的框架时,你可能会错过你的想法。

  • 认识到你的想法,无论看起来多么“直观”,可能真的很差。当你发现一个看似“反直觉”的框架时,问题可能就是你的问题。先学习他们,然后在掌握他们之后进行比较和对比。直到你掌握了他们的技能,继续寻找和学习。

+3

那么,这不是Python的建议。在一般的编程中是这样。 – 2010-02-28 17:43:00

+1

...研究也。工程师越早意识到并接受已经存在的东西,他/她就能够更快地达到并提高艺术水平。尽管不是Python特定的,但仍然是很好的答案。 – 2010-02-28 18:02:18

+1

很好的建议!人们需要认识到,提出正确的问题来找到你需要的东西,是需要时间来发展的技能。 – 2010-02-28 19:13:20

4

解释PEP是什么,怎么样它是写的,谁写的,我们可以找到它们。 PEP给出了很多关于该语言特定功能的背景信息。它们也是展示python发展速度的工具。

(我希望我读了一些执行点较早,但我完全不知道他们的,虽然他们在手册中频繁连接)

+0

如果你向同事解释他们,你是否正在进行PEP谈话? – 2010-03-02 16:27:23

+0

绝对是的。 – 2010-03-02 21:53:42

19

我觉得初学者需要了解的最重要的事情之一Python生态系统是它是一个通用语言,被专门的库包围着。有经验的pythonistas认识他们,但新手不能:

  • 不要停下来Tkinter的:去wxgtkqt
  • 请勿使用手动开启网页代码:请使用TurboGears,Pylons,Web.pyDjango
  • 不要使用硬工具解析HTML/XML:使用lxmlbeautifulsoup
  • 不要让系统调用imagemagik:使用PIL
  • 请勿手动进行高级数学运算:使用NumPySciPy
  • 请勿手动访问简单的数据库:使用ORM,如SQLAlchemy
  • 不要重新发明系统管理员轮子:使用Fabric

的主要的应该在一本书导向管上市当中进行选择。

+0

我会添加CherryPy和Genshi到网页编码 – 2010-02-28 18:53:17

+0

非常赞同这里。试图在所有类型的库和框架之间进行选择可能会非常眩晕,因此,对于那些新手来说,对于那些新手而言(包括标准库和外部库)的鸟瞰图将非常有帮助。感谢您的想法! – 2010-02-28 19:11:16

+0

我认为“不要停止tkinter”的建议是短视的。对于某些类型的问题,Tkinter是一个了不起的解决方案。 – 2010-02-28 21:00:44

5

“刚开始使用Python时,最让你感到困惑的是什么?”

学习Python的规则1:使用Source,Luke。

有问题要求从中学习Python的“好”源。最好的答案等于“读取随Python提供的库”。

可以说Python附带的库很古怪。在地方。这使他们更好地学习。

  1. 有一个非克隆人的志同道合的社区。

  2. 开源软件是您可以使用的最高质量的软件,但它不是由付费开发人员严格执行标准创建的。

7

相关的生态系统和间接社会的几点:

  • 我希望我已提醒更多关于Batteries included。我认为人们应该被告知要打印Table of Contents of the Standard Library并将它放在枕头下,以便进行频繁的评论(从网络介绍/初学者的视频介绍中,我终于用了几年的建议!)。 Std Lib的[相对]稳定性,广泛而相关的内容说明了对社区领导人及其受人喜爱的BDFL的深思熟虑的治理。

  • 我认为新手也可以对PiPy的极端品种进行“警告”(该词可能太强太不公平)。这反映了用户和贡献者的活跃,聪明和多样性(在背景,应用领域,兴趣......)集体中。然而,这可能是压倒性的,并且可能是有风险的,因为那里的所有包都没有“黄金时间准备好”(但许多人都“并且多次拯救了我的生命”)。

  • 即使你对Python感觉太新了,不仅使用了这个库,请看下引擎!许多语言都是这样,但可能特别是Python,从各种源代码中学到很多知识。这对于Python来说可能特别真实的原因是语言本身固有的(多范式,高层次的抽象......),但也是因为编码(和架构)风格的一致性以及由于一般级别在社区内进行合作。

+0

给出链接到标准库的目录 – 2010-02-28 18:35:46

+0

http://docs.python.org/library/ - 顺便说一下,好点。在我第一次使用Python之后大约一年半的时间,我第一次浏览了标准库的文档,并且记住想想如果我早些时候知道它,它会为我带来多少便利。 。 – 2010-02-28 19:19:32

+0

@mjv语法检查:偷看 - >做偷看 – Tshepang 2010-04-27 00:59:38

4

PEP 20:

import this 

(又名Python中的禅)

+0

我认为特别是解释名称空间(来自PHP的人)的有用性和明确性(对于查看Ruby和Python的人)是理解Python的关键。它让我惊叹于Python的禅宗是如何发现的:) – 2010-02-28 19:23:56

+0

我实际上已经多次使用PEP来证明我在代码评论中的评论。 – 2010-02-28 19:57:17

1

发展可以用的easy_install等安装Python包......我认为这是相当于开发一个罐子或dll etc ...

基于同样的道理,用virtualenv开发所述软件包或构建

如果我早点知道这些事情,那么当我第一次开始使用python时,我可能不仅仅使用了python。