Python是一种面向对象的编程语言,自由、开放、简单、易学、易用,具有快速原型开发的能力。Python语言的核心理念是用代码最少的原则解决问题。
一、def关键字简介
在Python中,def是定义函数的关键字,用于定义函数,函数是一块可以被重复使用的程序代码块,它可以接受输入参数并且在内部执行一系列操作以得到输出结果。使用def定义函数的语法如下:
def function_name(parameters):
"""docstring"""
statement(s)
其中,function_name是函数名,parameters是参数列表,docstring是函数说明字符串,statement(s)是要执行的语句块。
二、函数参数的分类和实例
在Python中,函数参数可以分为位置参数、关键字参数和默认参数。
1. 位置参数
位置参数是指按照函数参数列表定义顺序传递的参数,函数定义中的参数列表是位置参数。
def my_func(a, b, c):
print(a,b,c)
my_func(1,2,3)
输出结果:
1, 2, 3
2. 关键字参数
关键字参数是指按照参数名称传递的参数,可以不按照函数定义中的参数列表顺序传递参数。
def my_func(a, b, c):
print(a,b,c)
my_func(b=2,a=1,c=3)
输出结果:
1, 2, 3
3. 默认参数
默认参数是指有默认值的函数参数,如果不传递参数,则使用默认值。
def my_func(a, b, c=3):
print(a,b,c)
my_func(1,2)
输出结果:
1, 2, 3
三、函数的返回值
在Python中,使用return语句来返回函数结果。如果没有return语句,则函数默认返回None。
def my_func(a, b):
return a+b
result = my_func(1,2)
输出结果:
3
四、lambda表达式
lambda表达式是一种简短的函数定义方式,它由一个单独的语句组成,可以作为匿名函数传递。
my_lambda = lambda x, y: x+y
result = my_lambda(1,2)
输出结果:
3
五、函数的调用
在Python中,调用函数时需要提供参数,参数可以是位置参数、关键字参数或参数列表。
def my_func(a, b, c):
print(a,b,c)
my_func(1,2,3)
my_func(a=1,b=2,c=3)
my_func(*[1,2,3])
my_func(**{"a":1,"b":2,"c":3})
输出结果:
1, 2, 3
1, 2, 3
1, 2, 3
1, 2, 3
六、函数的高级特性
在Python中,函数具有一些高级特性,如闭包、装饰器、生成器等。
1. 闭包
闭包是指一个函数内部定义的函数,并且该内部函数可以访问外部函数的变量。通过保持外部函数的状态来实现闭包。
def outer_func(msg):
def inner_func():
print(msg)
return inner_func
my_func = outer_func("Hello")
my_func()
输出结果:
Hello
2. 装饰器
装饰器是指一个可以接受函数作为参数并返回函数的函数,它可以在运行时通过修改、扩展已有函数的行为。
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Before function is called.")
result = func(*args, **kwargs)
print("After function is called.")
return result
return wrapper
@my_decorator
def my_func(a, b):
return a+b
result = my_func(1,2)
输出结果:
Before function is called.
After function is called.
3
3. 生成器
生成器是一种特殊的函数,它可以在调用时暂停和恢复执行状态,并且可以用于迭代。
def my_generator():
yield 1
yield 2
yield 3
for i in my_generator():
print(i)
输出结果:
1
2
3