“Python函数调用简介:函数调用的方式和方法”
Python中函数的调用方式和方法有很多种,掌握这些方法对于学习和开发Python程序极为重要。本文将介绍Python函数调用的基本方式和一些高级方法。
一、函数调用的基本方式
Python函数调用的基本方式是通过函数名和参数列表进行调用。函数名标识要调用的函数,参数列表列出函数调用所需要的参数,参数列表的情况有以下几种:
1. 无参调用
如果函数不需要任何参数,调用时只需要在函数名后加上()即可。例如:
def hello():
print("Hello World!")
hello() #调用hello函数,输出"Hello World!"
2. 有参调用
如果函数需要接收参数,调用时需要在函数名后括号中写上参数列表,多个参数之间用逗号分隔。例如:
def add(x, y):
return x + y
z = add(3, 4) #调用add函数,传入参数3和4,并将返回值赋值给变量z
print(z) #输出7
3. 关键字参数调用
关键字参数是指在函数调用中,以键值对的形式传递参数。使用关键字参数时,可以不考虑参数顺序,只需使用参数名指定参数值。例如:
def add(x, y):
return x + y
z = add(y=4, x=3) #调用add函数,使用关键字参数传递参数,不考虑参数顺序
print(z) #输出7
4. 默认参数调用
默认参数是函数定义时给参数赋初值,调用函数时,如果没有传递值,则使用默认值。例如:
def add(x, y=1):
return x + y
z = add(3) #调用add函数,只传入x值,y值使用默认值1
print(z) #输出4
z = add(3, 4) #调用add函数,传入x值和y值
print(z) #输出7
5. 不定长参数调用
在函数定义时,在参数前写星号*(单星号)可以接受任意多个参数,这些参数放在一个元组中;而在参数前写双星号**可以接受关键字参数,这些参数放在一个字典中。例如:
def add(*args):
result = 0
for arg in args:
result += arg
return result
z = add(1, 2, 3) #调用add函数,传入3个参数,args会被打包成一个元组(1, 2, 3)
print(z) #输出6
def print_dict(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_dict(name="Tom", age=18, gender="male") #调用print_dict函数,传入3个关键字参数,kwargs会被打包成一个字典{"name": "Tom", "age": 18, "gender": "male"}
以上是Python函数调用的基本方式,可以满足大部分的函数调用需求。但是,Python还有很多其他的高级函数调用方式。
二、高级函数调用方式
1. 匿名函数调用
Python中的匿名函数是指没有名字的函数,也叫做lambda函数。使用lambda可以在一行代码中编写简单的函数。例如:
add = lambda x, y: x + y
z = add(3, 4)
print(z) #输出7
2. lambda函数在排序中的应用
lambda函数可以配合Python的内置函数sorted和list.sort()对列表中的元素进行排序。例如:
lst = [("Tom", 18), ("Peter", 20), ("John", 15)]
lst.sort(key=lambda x: x[1]) #使用lambda函数,以列表中第二个元素作为排序依据
print(lst) #输出[("John", 15), ("Tom", 18), ("Peter", 20)]
3. map()函数调用
Python中的map()函数可以将一个函数作用于一个列表中的所有元素,并将结果保存在一个新的列表中。例如:
def square(x):
return x * x
lst = [1, 2, 3, 4, 5]
new_lst = list(map(square, lst)) #使用map函数将square函数作用于lst中的每一个元素,返回的结果保存在new_lst中
print(new_lst) #输出[1, 4, 9, 16, 25]
4. filter()函数调用
Python中的filter()函数可以根据给定的函数对列表中的元素进行筛选,只保留符合条件的元素,并将它们保存在一个新列表中。例如:
def is_even(x):
return x % 2 == 0
lst = [1, 2, 3, 4, 5]
new_lst = list(filter(is_even, lst)) #使用filter函数,将is_even函数作用于lst中的每一个元素,只保留偶数元素,并返回这些元素组成的列表
print(new_lst) #输出[2, 4]
5. reduce()函数调用
Python中的reduce()函数可以将给定的函数作用于序列中的元素,得到一个单一的返回值。reduce函数的 个参数是一个函数对象,该函数的参数个数为2,reduce函数将序列中的一对元素传递给该函数,得到的返回值再和序列中的下一个元素一起传递给该函数,直到序列中所有元素都被遍历完毕,最后返回一个单一的返回值。例如:
from functools import reduce
def add(x, y):
return x + y
lst = [1, 2, 3, 4, 5]
result = reduce(add, lst) #使用reduce函数将add函数作用于lst中的每一个元素,最后返回所有元素的累计和
print(result) #输出15
以上是Python函数调用的基本方式和一些高级方法,使用这些方法可以更加方便地编写Python程序。
