什么是胶水语言?
在Python的内部机制中有:
2.java实现版本。这个解释器完全用java写成,名为Jython。尽管和标准版的有区别,但是很小,而且启动环境也完全相同
Jython的优点:
(1)只要有虚拟机,就可以运行Jython
(2)拥有访问java包与类库的能力
(3)为java开发环境提供了脚本引擎
(4)鼓励Python到java的开发
3..net实现。用C#语言完成,名为IronPython。和jython差不多。
范例:
# file: say.py
1 2 3 4 |
import sys txt = sys.argv[1] print "Hello %s!"%(txt) |
那么我就可以在Linux或Mac的终端上直接输入:
python say.py World
输出结果就会是:
Hello World!
这样就确保了,在终端调用上的直观与可编程性。
这样,我就不用必须在别的python语言里面调用python了,而能够直接在shell上跟其它处理程序直接连接。
接着
file: say2.py
1 2 3 4 |
import sys for line in sys.stdin.readlines(): print "Hello %s!"%(line.strip()) |
那么我就可以在终端这么干:echo -e 'water\nmaomaol\nkenbing\nlonger\nchuang'|python say3.py
输出就会是:
1 2 3 4 5 6 |
Hello water! Hello maomaol! Hello kenbing! Hello longer! Hello chuang! |
再进一步,我可以把前面的内容写成文件,比如写成一个这样的文件:
names.txt
1 2 3 4 5 6 |
water maomaol kenbing longer chuang |
就可以直接更便捷地做处理:
cat names.txt | python say2.py
这样,我就用cat
命令把文本打印出来,然后输出到say2.py
上去了。
输出一样的结果。
cat names.txt | python say2.py > result.txt
就这样,结果就保存到了result.txt
这个文件里了。
意义:
在终端上我可以随意地组合他和其它程序,作为一个中间处理模块。
而且,他可以如此地简单便捷,一些简单的脚本只需要cat一下马上就能明白是什么意思。
一个表达式一行代码,代码块有一致的标准的缩进,标准的命名方式,简练的语言,支持注释……
- 别的程序要访问或调用,很简单,一个命令把指定数据输入到这里就好,然后要怎么拼接怎么拼接;
- 周期性地处理也没问题,输出到文件,等待别的程序调用。
系统脚本上:
- 比SHELL多了很多数学及字符串处理能力,还多了很多很好用的迭代方法,还多了很多的原生的数据结构;
- 比PERL多了很要命的代码可读性。
- 比起ruby和nodejs,他基本所有机器都预装,而且已经经历了时间的考验。虽然,将来的确会有被这俩货代替的可能性。
- 比起C/C++,他多了一个终端、甚至像ipython这样的加强版神器终端,可以边调试代码边把没问题的代码写进文件。而且,源码即可执行。