第一个IronPython程序(之一)
这是一个完整的, 可执行的 IronPython程序。
它可能对您来说根本无法理解。别着急, 我们将逐行的进行剖析。不过首先把代码通读一遍, 看一看是否有些可以理解的内容。
例2.1 first.py 这个程序来自IronPython的例子,添加了一点内容
def add(a, b):
"add(a, b) -> returns a + b"
return a + b
def factorial(n):
"factorial(n) -> returns factorial of n"
if n <= 1: return 1
return n * factorial(n-1)
def BuildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return "".join(["%s=%s" % (k, v) for k, v in params.items()])
hi = "Hello from IronPython!"
if __name__ == "__main__":
myParams = {"server":"shanyou.zhang", \
"database":"pubs", \
"uid":"sa", \
"pwd":"secret" \
}
print BuildConnectionString(myParams)
print add(hi,"Zhangshanyou")
print factorial(100)
现在运行一下这个程序, 看一看结果是什么。在命令行中切换到Tutorial目录,执行命令ipy first.py
first.py输出的结果如下:
server=shanyou.zhang;database=pubs;uid=sa;pwd=secret
Hello from IronPython!Zhangshanyou
93326215443944152681699238856266700490715968264381621468592963895217599993229915
608941463976156518286253697920827223758251185210916864000000000000000000000000
与其它大多数语言一样IronPython 有函数, 但是它没有像 C++ 一样的独立的头文件;或者像 Pascal 一样的分离的 interface/implementation 段。 一旦需要函数时, 像下面这样声明即可:
def BuildConnectionString(params):
首先, 函数声明以关键字 def 开始, 接着为函数名, 再往后为参数, 参数放在小括号里。 多个参数之间 (这里没有演示) 用逗号分隔。
其次, 函数没有定义返回的数据类型。 IronPython 不需要提定返回值的数据类型;甚至不需要指定是否有返回值。实际上, 每个 IronPython 函数都返回一个值;如果函数执行过 return 语句, 它将返回指定的值, 否则将返回 None ( IronPython 的空值) 。
最后需要指出的是, 在 IronPython 中参数, params 不需要指定数据类型。 IronPython 会判定一个变量是什么类型, 并在内部将其记录下来。
可以通过给出一个 doc string (文档字符串) 文档化一个 IronPython 函数。
例 2.2. 定义 BuildConnectionString 和factorial函数的 doc string
def factorial(n):
"factorial(n) -> returns factorial of n"
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string."""
单个引号表示一个单行字符串,三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分, 包括硬回车和其它的引号字符。您可以在任何地方使用它们, 但是您可能会发现它们经常被用于定义 doc string 的情况。
三重引号也是一种定义既包含单引号又包含双引号的字符串的简单方法。
在三重引号中的任何东西都是这个函数的 doc string, 它们用来说明函数可以做什么。 如果存在 doc string, 它必须是一个函数要定义的第一个内容( 也就是说, 在冒号后面的第一个内容 )。 在技术上不要求给出函数的 doc string, 但是您应该这样做。我相信在您上过的每一种编程课上都听到过这一点, 但是 IronPython 带给您一些额外的动机: doc string 在运行时可作为函数的属性。
欢迎大家扫描下面二维码成为我的客户,扶你上云