TCL 与 Python的一些比较

转载自己的百度空间文章(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']
>>>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值