转载自己的百度空间文章(http://hi.baidu.com/ychen2/item/9c4a174cb991c2eda5c066c2),备忘!
仅作备忘,未完待续
1. Global scope
Tcl里的Global scope指的是toplevel scope,甚至高于其他的namespace,但namespace中的变量也可以用global namespace::var在proc中声明;
但python中是这么定义:the global scope of a function defined in a module is that module’s namespace
即Global是在一个module中的概念,所有的module都有其Global scope。
2. 变量自增
tcl 里有如c语言的 i++, i-- 的自增,自减操作: incr i; incr i 2; incr i -1; incr i -2;
Python中没有自增,自减的操作符,只能通过加减的方法实现,而且需要name 指向的object是 int 型,且预先指定了 该name 和 object的绑定关系,否则也会报错,这也是 与tcl的一点区别。
实现自增,自减:
a=1
a=a+1;
a+=2;
a=a-1;
a-=2;
3. split
Tcl中 split只是一个命令,因为tcl中所有的数据都可以按字符处理,所有split没有特殊之处,即是对字符串按照提供的子字串中的每个字符进行拆分为一个list;
% set str 1111ab222a3333bb444aaa5555abba6666
1111ab222a3333bb444aaa5555abba6666
%
% split $str ab
1111 {} 222 3333 {} 444 {} {} 5555 {} {} {} 6666
NOTE: split使用的不是命令后面的子字符串的整体进行split,而是按照子字串中每个字符进行split,即只要需要split的字符串中包含了子字串中的任何一个字符,则进行一次split;
Python 因为区分不同的数据类型,且每个类型都是一个object,所以 split只在字符串变量(一个name和一个字符串object对应)才能使用;而且split的时候是以参数里的子字串整体进行split;
>>> string='1111ab222a3333bb444aaa5555abba6666'
>>>
>>> string.split('ab')
['1111', '222a3333bb444aaa5555', 'ba6666']
>>>