欢迎访问宙启技术站
智能推送

“Python函数调用简介:函数调用的方式和方法”

发布时间:2023-06-13 04:02:53

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程序。