首页 > 学院 > 开发设计 > 正文

python抽象-函数

2019-11-14 11:20:34
字体:
来源:转载
供稿:网友

记录函数

文档字符串:在函数中写文档

def square(x): "document strings" return x * x

可以如下显示

PRint(square.__doc__)help(square)

函数返回值

并不是所有函数都有返回值但是函数默认的返回值是None(和1矛盾的话…)

函数参数

位置参数 posParam position parameter关键字参数 keyParam key parameter收集参数 colParam collection parameter

example:

def func(posParam, keyParam=defaultValue, *posColParam, **keyColParam): print(posParam) print(keyParam) print(posColParam) # as tuple print(keyColParam) # as dict

example:

def print_params(x, y, z = 3, *pospar, **keypar): print(x, y, z) print(pospar) print(keypar)print_params(1,2,3, 5,6,7, foo=1,bar=2)

变量

屏蔽(shadowing)

对于同名变量,局部变量能屏蔽(shadow)全局变量

globals()获取全局变量的值,声明此变量是全局变量可以使用关键字globalvars()是globals()的近亲函数locals()是声明此变量时局部变量

作用域(命名空间)

mint:按照理解应该是独立的内存空间或者stack吧

全局作用域局部作用域作用域可以嵌套

嵌套作用域,闭包

闭包(closure):函数存储于封闭作用域的行为

def Multiplier(factor): def MultiplierByFactor(number): return number * factor return MultiplierByFactornonlocal()对外部作用域(非全局作用域)的变量进行赋值

递归 recursion

递归的定义:引用自身

recursion: please see the definition recursion

注意避免写出没有边界条件的infinite recursion 否则会产生“超过最大递归深度”的错误


函数式编程

map(func, seq[, seq, …]) # 对序列中的每个元素应用函数filter(func, seq) # 返回其函数为真的元素的列表reduce(func, seq[, initial]) # 等同于func(func(func(seq[0], seq[1]), seq[2]), …)lambda

一般函数

sum(seq) # 返回seq中所有元素和apply(func[, args[, kwargs] ] ) # 调用函数,可以提供参数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表