• Python参数种类介绍


    Python参数种类介绍

    相比于一些其他编程语言,Python提供了更多的参数种类选项。这是Python的一大特点,使用不同的参数类型,可以提高函数的可读性和可维护性。例如,使用关键字参数可以使函数调用更加清晰,不需要记住参数的顺序。
    从函数定义和函数调用的角度分类,Python参数种类有:

    1、位置参数(Positional argument):在调用函数时,按照函数定义中参数的顺序传递的参数。例如:
    def add(a, b):  
        return a + b  
      
    result = add(1, 2)  # 这里传递的就是位置参数  
    print(result)  # 输出:3

    2、关键字参数(Keyword argument):在调用函数时,使用参数的名字来传递的参数。关键字参数可以直接指定参数的值,不依赖于参数的位置。例如:
    def add(a, b):  
        return a + b  
      
    result = add(b=2, a=1)  # 这里传递的就是关键字参数  
    print(result)  # 输出:3

    3、默认[值]参数(Default argument):
    在函数定义中,可以为参数设置默认值。当调用函数时,如果没有为该参数提供值,则使用默认值。例如:
    def greet(name, age=20):
        print(f"Hello, {name}. You are {age} years old.")

    greet("John")  # 输出:Hello, John. You are 20 years old.
    greet("Alice", 18)  # 输出:Hello, Alice. You are 18 years old.

    4、可变数量参数(Variable argument):在定义函数时,使用*号表示可变参数,将传入的参数打包成一个元组。可变参数使函数更加灵活,可以处理不确定数量的位置参数(positional arguments)。例如:
    def sum_numbers(*args):  
        return sum(args)  
      
    result = sum_numbers(1, 2, 3, 4, 5)  # 这里传递的就是可变数量位置参数  
    print(result)  # 输出:15  
      
    5、关键字可变参数(Keyword Variable Arguments):关键字可变参数允许函数接受任意数量的关键字参数。在函数定义时,可以使用**号来表示关键字可变参数。关键字可变参数使函数能够处理不确定数量和名称的关键字参数。例如:
    def greet(**kwargs):  
        for key, value in kwargs.items():  
            print(f'{key}: {value}')  
      
    greet(name='Alice', age=25)  # 这里传递的就是可变数量关键字参数  
    输出:
    name: Alice  
    age: 25

    特别提示:*args 和 **kwargs 只是通用的约定俗成的名称,实际上你可以使用其他名称来代替它们。但 * 和 ** 不能去掉。


    还可以组合使用不同类型的参数。例如:
    def greet(name, age=25, **kwargs):
        print(f"Hello, my name is {name}, I'm {age} years old.")
        for key, value in kwargs.items():
            print(f"{key} = {value}")

    greet("Alice", age=30, city="New York", job="Software Engineer")
    输出:
    Hello, my name is Alice, I'm 30 years old.
    city = New York
    job = Software Engineer

    解包参数(Unpacking argument)

    Python中,解包参数是一种将可迭代对象(如列表、元组、字典等)拆分为单独的参数的方法。解包参数可以用于函数调用或者在赋值语句中。

    1)函数调用中的解包参数:
    def add(a, b):
        return a + b

    numbers = [1, 2]
    result = add(*numbers)
    print(result)  # 输出:3
    在上面的例子中,我们将列表numbers解包为两个参数a和b,然后将它们传递给函数add进行计算。

    2)赋值语句中的解包参数:
    numbers = [1, 2]
    a, b = numbers
    print(a)  # 输出:1
    print(b)  # 输出:2
    在这个例子中,我们将列表numbers解包为两个变量a和b,并分别赋值为列表中的第一个和第二个元素。

    3)字典的解包参数:
    person = {'name': 'Alice', 'age': 25}
    print("My name is {name} and I am {age} years old.".format(**person))
    # 输出:My name is Alice and I am 25 years old.
    在这个例子中,我们使用**操作符将字典person解包为关键字参数,然后将它们传递给format方法进行字符串格式化。

      

    更多情况,可参见 Python函数的参数详解 https://blog.csdn.net/cnds123/article/details/123264378

  • 相关阅读:
    项目解决方案:校园云视频平台方案(视频接入、汇聚、联网、分享)
    给IDEA道个歉,这不是它的BUG,而是反编译插件的BUG。
    一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
    DockerFile发布Java微服务并部署到Docker容器
    远程调用,参数压缩问题
    随笔:想写一本数据结构的书
    【PHP图片托管】CFimagehost搭建私人图床 - 无需数据库支持
    【Markdown】编辑器使用技巧大汇总5。类似表格的输入,字体格式的输入(尝试版,不怎么全,待后续继续补充)
    计算机二级(Python)真题讲解每日一题:《字典字符查找》
    随机数算法,SQL
  • 原文地址:https://blog.csdn.net/cnds123/article/details/134031109