Lecture 4 Functions
1. Function 的用处及语法
使用def作为定义的关键词
def max(x, y):
if x > y:
return x
else:
return y
2. return
若函数执行完毕且无return作为输出标志,则会返回None, 如下面的代码将返回None:
def f(x, y):
'''
x: int or float.
y: int or float
'''
x + y - 2
3. .docstring
docstring可用于在function中解释此函数的含义及所用变量,单引号与双引号皆可。
4. environment的概念与函数的关系
函数属于一个procedure object,即使在全局环境E1中已经定义过x,y的值,当调用函数max时,使用的x,y的值为局部环境E2中的。
procedure(function)之所以可以被称作为black box,也正是因为会生成一个相对独立的environment,所有的computation都是建立在这个独立environment的基础上,所以local environment中的数值不会被改变。
- 关于function与environment的进一步延伸
当使用z直接调用f(x)时,由于在函数中未对x的值进行定义,函数直接借用了全局环境中的x=3, 并放置于本函数的新环境中。此种模式叫做:static scoping,亦叫做 lexical scoping
* 【知识补充】 关于static scoping 与dynamic scoping