1 定义
函数是实现某一功能的代码段,一般具有功能性、隐藏细节、避免编写重复性代码等特点。在Python中,函数是一等对象,满足下述条件:
- 在运行时创建
- 能赋值给变量或数据结构中的元素
- 能作为参数传给函数
- 能作为函数的返回结果
在Python中,整数、字符串和字典都是一等对象。把函数视作一等对象简称为“一等函数”。
定义一个函数:
def func_name(param_list):
"""
函数说明
"""
func_body
return value
说明:
- 函数用关键字def定义。
- func_name为函数名。
- param_list为参数列表,可以省略。
- 文档字符串
""" """
中为函数说明,可选。 - func_body为函数主体部分,执行相应的语句。
- return返回函数值,如不指定则返回None。函数可以返回多个结果的元组,调用函数后尽量用有意义的名称来接收函数的返回结果,避免直接元组索引来接收元组解包结果。
def 是可执行语句,这意味着函数在被调用前,都是不存在的。当程序调用函数时,def 语句才会创建一个新的函数对象,并赋予其名字。需要注意,主程序调用函数时,必须保证这个函数此前已经定义过,不然就会报错。但是,如果我们在函数内部调用其他函数,函数间哪个声明在前、哪个在后就无所谓,因为 def 是可执行语句,函数在调用之前都不存在,我们只需保证调用时,所需的函数都已经声明定义。
demo() # 在定义前调用报错:NameError: name 'demo' is not defined
def demo():
print("This is a demo")
# 函数内部调用其他函数
def my_func(message):
my_sub_func(message) # 调用my_sub_func()在其声明之前不影响程序执行
def my_sub_func(message):
print(message)
my_func('hello world')
# 输出
hello world