抽空看了一下Python,算不算已经入门就不知道了。下面说说识途马老对Python的印象,只涉及到语言层面,不涉及到库、算法、应用之类的。
首先,Python语言是一门动态类型语言、也是解释型语言(与编译型语言相对应)。变量在使用前是不需要事先声明是什么类型的变量的。类的属性和方法、类的实例的属性和方法是可以在代码运行时添加和删除的。识途马老在第一次看到体现这个特性的代码时吓了一跳,随后才意识到这正是动态语言的特点之一。
其次,Python有些特性识途马老很喜欢。其内置数据类型有List,Dictionary,Tuple,Set等等。其中的Tuple给识途马老留下很深的印象,这也是识途马老第一次接触到这种数据类型,其中文翻译为元组。元组的使用可以让代码十分简洁漂亮。
识途马老注意到Python有一个很有趣的地方:给函数传递参数时,可以有常规参数,关键字参数,可变长度的参数等等。这个特性,在Mathematica中并不新鲜:同样的函数,传递给它的参数数目是可以变化的,可选参数的顺序也是可以改变的。
这次看Python的有关材料,第一次理解了迭代器(iterator)的设计思路,这个收获是识途马老开始的时候没有预料到的。
Python有一个很有用的东西,叫装饰器(decorator),也是比较好玩的。这是Python3.0之后加入新特性。从语法上来说,Python装饰器与等Java的注解差不多,但从语义上来讲,应该还是不一样的。识途马老刚接触,不敢断言,留着以后作进一步了解吧。
初步印象是,Python与Mathematica很像。开始的时候,识途马老是有些好奇为什么它们这么相像?后来想了想,应该还是有道理的。首先,与Python一样,Mathematica也是动态语言,也是解释型语言。其次,维基百科上说,Python受到众多语言的影响,其中就有Lisp语言。记得早年的符号计算系统REDUCE就是用LISP 语言开发的,Mathematica也是一个符号计算系统,所以Python与Mathematica有些相通的特性应该是不奇怪的。
最后说一下,这里说的是个人印象,随着进一步的学习,印象也许会改变。
领取专属 10元无门槛券
私享最新 技术干货