【问题标题】:Learning Python for a .NET developer [closed]为 .NET 开发人员学习 Python [关闭]
【发布时间】:2009-07-02 04:42:10
【问题描述】:

多年来,我一直在积极地使用 C# 进行开发。我主要在 .NET 堆栈上构建企业应用程序和内部框架。

我从不需要使用除 C# 之外的任何其他主流高级语言来完成我的任务,因为 .NET 是我们使用的标准平台。

我被要求支持一些遗留的 Python 应用程序,我一般没有接触过 Python 和动态语言(尽管我已经完成了一些 JavaScript)。

我希望获得一些指导/建议,以帮助学习如何为静态类型思维学习像 python 这样的语言。

编辑:不能使用 IronPython!

【问题讨论】:

标签: c# .net python dynamic-languages


【解决方案1】:

Foord 和 Muirhead 的 IronPython in Action 是一本非常好的书,非常适合向 .NET 人员教授 Python 以及向 Python 人员教授 .NET。我可能有偏见,因为我是一名技术审稿人,而 Foord 是我的朋友,但我过去也遇到过其他情况,一个朋友写了一本书,我对它进行了技术审阅——最终认定这本书是错误的公开这样说(失去朋友的方式,但是,我不能说谎,至少不是 Python 所关心的!-)

编辑:如果您被禁止迁移到 IronPython(它可能会很好地支持您的旧版应用程序,顺便说一句),有更好的答案:Mark Pilgrim 的 Dive into Python 通常被认为是最好的经验丰富的开发人员的 Python 介绍,我自己的 Python in a Nutshell 被称赞为超级明星开发人员最快的入门方式。我当然偏向于这些——马克是一位同事,我的妻子是他的书(以及我自己的书)的主要技术编辑,显然我偏向于我自己的书也是;-)。但是,我确实倾向于偏向许多最好的 Python 书籍,因为我要么参与过他们的编辑,要么与他们的作者成为朋友,或者两者兼而有之;-)。

【讨论】:

  • 本书的重点是针对.NET框架和python吗?如果是这样,那么这不是我想要的,因为我需要支持用 python 编写的遗留应用程序
  • 如果您被禁止迁移到 IronPython(它可能会很好地支持您的旧版应用程序,顺便说一句),有更好的答案,让我编辑我的答案以提及它们。
  • Alex:Iron Python 2.0.1 是否与 Visual Studio 集成,即您可以在 VS 中创建和打开 IronPyton 项目吗?
  • @Abhijeet,几种可能性:最有希望的交钥匙解决方案是ironpythonstudio.codeplex.com——为了更深入地理解,ironpython-urls.blogspot.com/2008/07/… 和来自它的链接似乎也不错。
  • Alex:IronPython 工作室看起来很有希望。我会尝试一下,还有任何其他 IDE 推荐(非 IRON Py),我听说 Eclipse 的 PyDev 插件是值得的,任何其他(免费)你可以推荐吗?
【解决方案2】:

在使用来自 Java 的 python 时,我遇到的最困难的事情是正确地将我的头包裹在 Duck Typing 的东西上……起初我认为这简直太可怕了,只是把我脖子后面的头发整理了一下。

接下来是约定的范围,但这很简单。空白的重要性给了我一些障碍。

但是,一旦您对这门语言的简洁性和发展速度感到放松,您就会学会更多地欣赏它。过了一会儿,我认为这是发生在我身上最好的事情! :-)

这里有几件事对我有很大帮助:

首先,我从book 开始,了解了该语言的基础知识,对于日常使用,Python Quick Reference Card 非常有帮助。此外,console 将是您快速尝试并巩固您的学习的最佳盟友。

对于 IDE,来自 eclipse 世界 PyDev 对我来说是一个自然的选择,但还有更多可供选择。但如果您更熟悉 Visual Studio 环境,Python Tools for Visual Studio 也非常棒。

祝你好运,希望你会发现 Python 和我一样有趣。

【讨论】:

    【解决方案3】:

    要适应动态类型有一个很大的初始障碍。第一步是当您查看 Python 代码并意识到变量没有在任何地方定义时,您只是凭空创建它们,感觉就像跳过悬崖一样。在您的悬挂式滑翔机正确捕捉空气之前有一小段时间。

    然后,您需要一段时间才能信任您新发现的动态机翼,而且您可能只能通过与它们进行特技飞行来获得它们。了解 python 如何处理引用,玩猴子修补方法,鸭子类型各种动物。尝试学习一些丑陋的技巧。

    虽然你不能为此使用 IronPython,但你没有理由不使用它来学习 Python。

    【讨论】:

      【解决方案4】:

      从 C# 到 Python 的野鸭式内陆,您将体验到相当多的文化冲击。缺乏类型和智能感知可能非常令人生畏。你在 JavaScript 方面的经验是好事。还知道 Python 的缩进敏感块规则对于缺乏经验可能会非常混乱(通常你要么喜欢它,要么讨厌它 :-)

      除此之外,从一种语言迁移到另一种语言的最大挑战通常是框架。不幸的是,了解所有类和函数只是需要时间。

      【讨论】:

        【解决方案5】:

        对于有经验的 Python 开发者来说,Dive Into Python 是一本非常好的书。

        Wesley Chun 的Core Python Programming 书采用了更加“彻底”的方法,对于有经验的开发人员来说可能有点慢。但是与其他语言相比,它允许非常容易地比较基本语法和运算符。 Wesley 的写作风格非常容易阅读,他的示例项目非常重要,以至于实际上很有趣。

        Python Cookbook 是学习以“Pythonic”方式编程的绝佳参考。本书包含数百个 (?) 如何使用 Python 解决常见日常问题的示例。一般来说,“Cookbook”系列将比任何其他书籍更快地让您了解该语言的习语。

        每当我需要学习一门新的编程语言时,我都会开始将它用于所有出现的“日常维护”任务——我通常会使用 shell 脚本或常见的 unix 工具来解决的所有小事情——我开始使用新语言来解决这些问题。由于您有 .NET 经验,IronPython 可能是在学习 Python 时利用这些知识的好方法。即使您只将 IronPython 安装在个人沙箱中……并将其用于所有日常繁忙的编码任务——这也是学习 Python 语法和习语的好方法。

        【讨论】:

          【解决方案6】:

          如果你有时间,这本书Pro IronPython 也值得一读。

          【讨论】:

            【解决方案7】:

            我建议只是阅读有关它的书。一本适合初学者的书。它将包含许多您已经知道的内容,但您不会错过任何有关使用动态语言的内容。我可以给你指点Dive into Python,看起来很友好,或者The Python Tutorial,看起来很中肯(我就是这么学的)。

            【讨论】:

              【解决方案8】:

              我建议使用IronPython 来帮助您学习。它是 .NET 框架上的 Python 实现。因此,您可以通过访问 .NET 类库来使用/学习 Python。

              下载IronPython 并查看IronPython in Action 是一个很好的起点,这是一本非常好的书,介绍了.NET 框架上的Python。

              编辑:由于 IronPython 不是一个选项,请忽略此答案。不过还是谢谢。

              【讨论】:

                猜你喜欢
                • 2011-02-08
                • 2010-11-08
                • 1970-01-01
                • 1970-01-01
                • 2010-10-07
                • 1970-01-01
                • 2018-03-19
                • 2014-01-17
                • 1970-01-01
                相关资源
                最近更新 更多