我已经使用C#进行了几年的积极开发。 我主要在.NET平台上构建企业应用程序和内部框架。
除了C#之外,我从未需要使用任何其他主流高级语言来完成我的任务,因为.NET是我们使用的标准平台。
有一些遗留的Python应用程序需要我提供支持,但我对Python和动态语言没有接触过(尽管我做了一些JavaScript)。
我希望得到一些指导/建议,以帮助学习像Python这样的静态类型思维所需要的语言。
编辑:IronPython不是选项!
我已经使用C#进行了几年的积极开发。 我主要在.NET平台上构建企业应用程序和内部框架。
除了C#之外,我从未需要使用任何其他主流高级语言来完成我的任务,因为.NET是我们使用的标准平台。
有一些遗留的Python应用程序需要我提供支持,但我对Python和动态语言没有接触过(尽管我做了一些JavaScript)。
我希望得到一些指导/建议,以帮助学习像Python这样的静态类型思维所需要的语言。
编辑:IronPython不是选项!
编辑:如果你不能转向IronPython(顺便说一句,它可能会很好地支持你的遗留应用程序),还有更好的答案:Mark Pilgrim的Dive into Python通常被认为是面向有经验的开发人员的最佳Python入门书籍,而我自己的Python in a Nutshell则被誉为超级开发人员上手最快的方式。当然,我对这些有偏见——Mark是我的同事,我的妻子是他的书的主要技术编辑(也是我的),而且显然我也对自己的书有偏见;-)。但是,我倾向于很多最好的Python书籍,因为我或者参与了它们的编辑,或者是它们的作者的朋友,或者两者兼而有之;-)。
对于IDE,对于我来说,从eclipse世界PyDev是一个很自然的选择,但还有许多其他选择。但如果您更熟悉Visual Studio环境,则Python Tools for Visual Studio也非常不错。
祝好运,希望您像我一样喜欢Python。
掌握动态类型是一个巨大的难关。在看 Python 代码时,你会意识到变量没有被定义过,你只是凭空创建它们,这感觉像是跳下悬崖。在你的滑翔翼完全获得空气才能稳定前,会有一瞬间的惊恐。
之后需要时间来信任你新学到的动态翅膀,你可能只能通过飞行特技来摸索使用方法。了解 Python 如何处理引用,试图使用 Monkey-Patching 的方法,适应不同类型的变量。尝试学习一些技巧。
虽然你不能用 IronPython 来做这个,但你可以用它来学习 Python。
从C#转向Python这样的鸭子类型语言,你会经历相当大的文化冲击。缺少类型和智能感知可能会非常令人望而生畏。很幸运你有JavaScript的经验。此外,Python中基于缩进的块规则对于没有经验的人来说可能非常令人困惑(通常你要么喜欢它,要么讨厌它:-)
除此之外,从一种语言转向另一种语言的最大挑战通常是框架。了解所有类和函数需要时间。