自定义函数
使用def语句自定义函数,其后为函数名(输入参数): 函数体在缩进块中编写。输入参数中,必选参数在前,默认参数在后。返回值用return语句,和C艹不同的是,返回多个数值时,python返回的是一个包含多个数值的tuple。
若把函数保存为.py文件,在当前目录下可以使用 from abstest import my_abs来导入函数,其中abstest为文件名,my_abs为函数名。
pass语句,如同字面,表示什么都1不做,常用来占位。
可变参数,在参数前面加了一个*号,调用该函数时,可以传入任意个参数,包括0个参数。
关键字参数,在参数前面加了两个*号,允许传入0个或任意个含参数名的参数。
命名关键字参数 例如 defperson(name, age, *, city, job) 仅仅接受其后关键字的参数,若函数中已经定义可变参数,则不需要” *, “ 。注意,命名关键字必须传入参数名。
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
注意,python没有对自定函数参数类型错误的检查,可以在函数中添加类型检查语句(例如 isinstance(x, (int, float)) )实现。
尾递归优化
在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。
网友评论