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

Python函数的参数传递方式有几种,分别是什么?

发布时间:2023-07-02 10:40:02

Python函数的参数传递方式分为以下几种:

1. 位置参数(Positional Arguments):

位置参数是函数定义时声明的参数,调用函数时按照声明的顺序传入的参数。传参时需要保证参数的顺序和数量与函数定义时的一致。

例如,定义一个函数add,接收两个位置参数num1num2,用于计算两个数的和:

   def add(num1, num2):
       return num1 + num2
   

调用该函数时需要按照参数的位置传入对应的值:

   result = add(1, 2)
   print(result)  # 输出结果为 3
   

2. 关键字参数(Keyword Arguments):

关键字参数与位置参数不同,它传参时使用参数名进行传递,可以省略参数顺序的限制。通过指定参数名来传递参数的方式,使得函数调用更加具有可读性和灵活性。

例如,在使用关键字参数时,可以不按照参数定义的顺序传递参数,并且在调用时可以只传入部分参数:

   def multiply(num1, num2):
       return num1 * num2
   

调用该函数时可以使用参数名进行传递:

   result = multiply(num2=3, num1=2)
   print(result)  # 输出结果为 6
   

3. 默认参数(Default Arguments):

默认参数是在函数定义时给参数赋予一个默认值,调用函数时可以不传递该参数,从而使用默认值。

默认参数可以为函数提供一些常用的值,而避免在调用函数时必须指定这些值。例如,定义一个函数power,接收两个参数numexp,其中exp默认为2,用于计算num的幂次方:

   def power(num, exp=2):
       return num ** exp
   

调用该函数时可以只传递一个参数,此时默认使用exp的默认值 2:

   result = power(3)
   print(result)  # 输出结果为 9
   

也可以传递两个参数,此时使用传递的exp值:

   result = power(3, 3)
   print(result)  # 输出结果为 27
   

4. 可变参数(Variable Arguments):

可变参数是指在函数的参数列表中可以接收任意数量的参数。在函数定义时通过添加一个星号*前缀来表示参数为可变参数,称之为*args,可以将传递的参数作为一个元组进行处理。

例如,定义一个函数add_numbers,接收任意数量的数字作为参数,用于计算这些数字的和:

   def add_numbers(*args):
       result = 0
       for num in args:
           result += num
       return result
   

调用该函数时可以传递任意数量的数字作为参数:

   result = add_numbers(1, 2, 3, 4, 5)
   print(result)  # 输出结果为 15
   

5. 关键字可变参数(Keyword Variable Arguments):

关键字可变参数是指在函数的参数列表中可以接收任意数量的关键字参数。在函数定义时通过添加两个星号**前缀来表示参数为关键字可变参数,称之为**kwargs,可以将传递的参数作为一个字典进行处理。

例如,定义一个函数print_info,接收任意数量的关键字参数nameage,用于打印人员的信息:

   def print_info(**kwargs):
       for key, value in kwargs.items():
           print(f'{key}: {value}')
   

调用该函数时可以传递任意数量的关键字参数:

   print_info(name='Alice', age=25)
   # 输出结果:
   # name: Alice
   # age: 25
   

综上所述,Python函数的参数传递方式包括位置参数、关键字参数、默认参数、可变参数和关键字可变参数。这些参数传递方式的灵活性使得函数的调用更加方便,符合不同的使用场景需求。