Python的特性(列表)
作者:limodou
此文其实不算是一篇文章,只是总结了一下我认为属于Python特点的东西。可能别的语言也有。
特性
描述
缩排
Python格式中最有特色的东西,有了它风格统一,而且减少了不毕要的块包围符号
多种序列
有列表,序组(tuple),和字典(字符串可以看做序组)
序列乘法
序列可以进行乘法,表示多个序列的组合。如:s=[1];s*3为[1,1,1]
序列分片
序列可以通过分片进行切割,而且还可以进行序列的复制:s[:]
序列的负索引
序列的索引可以为负数,表示后最后向前数。如:s=[1,2,3];s[-1]表示3
动态语义
这个特性大部分脚本语言都有,就是通过赋值来决定变量的类型。而且通过赋值可以改变变量的类型。
连续比较
可以如下进行比较:2< x< y<3
超长整数
在整数后面加上'l'或'L'可以使用很大的整数,比C语言的整数还大。如a=999999999999999999999L
同时赋值
在Python中,可以一次给多个变量赋值,如:a,b=1,2
循环中的else
在Python的循环语句中,可以有else字句,表示没有使用break语句退出循环,即循环正常结束时,要执行的语句。在for,while中均有。
异常中的else
异常中也可有else子句,表示未出现异常时执行的语句。与finally不一样,finally是必需要执行的,而else则是有条件执行的
格式输出中的关键字
在Python的格式输出格式中,格式符可以用关键字参数。如:"%(table)s" % {'table':'hello'}
模块、包
Python中可以有模块,还可以有包。可以象Java一样导入。
语句动态生成
可以写一个字符串,然后运行它。如:exec "x=2"。还可以执行一个文件(动态生成)execfile()。表达式使用:eval()。
属性的动态变化
可以使用getattr()得到一个对象的属性,可以使用setattr()来修改过设置对象的新属性,使用delattr()删除对象的属性。有时还可以:a.newattr=attr来设置新属性
真正的面象对象
可以多态继承(有多个基类),可以有私有属性,类公共属性
基类的动态改变
如果愿意你可以增加新的基类,从而使一个类拥有新的基类方法,而不用修改原来的基类
缺省参数值
Python的函数可以使用缺省参数
关键字参数
还支持关键字参数,如a(name='abc')
函数的不定参数
Python的函数支持不定参数。可以使用关键字参数,也可以不使用。
特殊的类方法
类可以定义特殊的方法,支持逻辑操作,如'+','*',[ i ]等
单行函数
Python支持单行函数:lambda x:x+1
列表映射
对列表可以进行映射操作,如["%d" % x for x in range(10)]
嵌套函数
可以象pascal一样写嵌套的函数,到了2.1以上变量的作用域也可以嵌套
对象的持续性
一个对象可以保存起来,在需要时恢复
可编译成字节码
象Java一样,可以将Python程序编译成字节码。