ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

【Python程序开发系列】一文总结Python函数参数和传递方式

【Python程序开发系列】一文总结Python函数参数和传递方式 这是我的第217篇原创文章。一、引言函数在定义的时候可以有参数的也可以没有参数。从函数定义的角度来看参数可以分为两种必选参数, 是调用函数的时候, 是必须要去指定的那样的参数, 在进行定义的时候, 是不存在等号情况。可选参数, 也被称作默认参数, 在调用函数之际, 是能够去指定的, 也能够不去指定的, 要是不去指定的话, 那就会按照默认的参数值来。从函数调用的角度来看参数可以分为三种关键字参数: 在进行调用这个操作的时候, 采用的是 keyvalue 这种形式来传递参数, 如此这般传递参数就可以不依照定义顺序进行了。位置参数: 当进行调用这个行为时, 不运用关键字参数那种 key-value 形式来传递参数, 像这样传递参数就需要留意要按照函数定义时参数的顺序来。最后, 存在着另外一种极为特别的参数, 它被称作可变参数, 其所言之意为, 参数的个数是能够发生变化的, 既能够是0个, 又能够是不管多少个, 然而在进行传参之时, 是不可以去指定参数名的, 一般情况下, 会使用*args以及**来予以表示:二、参数和传参方式2.1 位置参数 顺序传数之位置参数: 此乃极为常见的传参形式, 参数依据定义之际的顺序予以传递。于调用函数之时, 所传入的参数跟函数定义里的参数逐个对应。def add(a, b): return a b result add(3, 4) # 位置参数 print(result) # 输出: 72.2 关键字参数 关键词参数, 它有一种情况, 就是在调用函数之际, 能够运用参数名去明确传递的参数值, 并非非得依照定义时候的顺序来传递, 这般做具有提高代码可被读取性的作用。def greet(name, message): print(fHello, {name}! {message}) greet(nameAlice, messageHow are you?) # 关键字参数2.3 默认参数 定义函数之际, 能够针对参数去指定默认值, 此为默认参数。调用函数之时, 要是未曾传递该参数的值, 函数便会采用默认值。def power(base, exponent2): # 默认参数 return base ** exponent result power(3) # 使用默认参数 print(result) # 输出: 9 result power(3, 3) # 传递参数值 print(result) # 输出: 272.4 可变参数 可变参数, 有时候, 我们期望函数接纳任意数量的参数。在其中, 可以运用星号 * 来界定可变参数。可变参数会被整理成一个元组*args或者字典**。def func(*args, **kw): print(args) # (10, 20) print(kw) # {c: 20, d: 40} func(10, 20, c20, d40)三、可变位置传参*args接收任意数量的位置参数使用一个星号加参数名字这个名字一般被命名为args来对可变参数予以定义, 它会把传进来的参数打包成为一个元组, 如此一来, 函数内部能够借助遍历该元组去处理传进来的参数。使用场景1不确定参数数量你编写函数, 若需接受不确定数量参数, 可变位置传参堪称格外便利。举例而言, 计算一组数字总和, 或者计算一组数字平均值时, 可以运用可变位置传参, 用以接受任意数量数字。def calculate_sum(*numbers): total sum(numbers) return total result calculate_sum(1, 2, 3, 4, 5) print(result) # 输出15四、可变关键字传参**接收任意数量的关键字参数它是当中的其一语法, 此语法准许函数接纳任意数量的关键字参数, 这些参数于函数内部当作字典来处置, 字典的键为参数名, 其值乃是传递给函数的参数值。在当中, 它是个通用的名字, 代表着“ ”, 可你也能够运用其他任何名字来替换。使用场景1接受任意数量的关键字参数当函数要接纳不确定数量的关键字参数之际, 能够运用**, 如此一来, 函数能够接纳任意数量的关键字参数, 并且会以字典的形式于函数内部予以处理。def process_data(**kwargs): for key, value in kwargs.items(): print(f{key}: {value}) process_data(nameAlice, age25, cityNew York)在前述的例子里头, 函数能够接纳任意数量的关键字参数, 且把它们打印出来。使用场景2扩展现有函数的参数列表某种时候, 我们期望于现有的那个函数的基础之上增添额外的参数, 并且不改变原本的参数列表。在这个时候能够运用 ** 去接收额外的关键字参数。def add(a, b): return a b def add_with_message(a, b, **kwargs): result add(a, b) message kwargs.get(message, ) # 使用字典的 get() 方法它允许你指定默认值以便在键不存在时返回该默认值。 return f{result} {message} print(add_with_message(3, 4)) # 输出: 7 print(add_with_message(3, 4, messageis the sum)) # 输出: 7 is the sum在刚才讲述的那个例子当中, 函数在去调用add函数从而得出计算结果之后, 依据传进来的关键字参数, 去添加额外的消息。作者简介读研那段时期发表了6篇跟数据算法相关的SCI论文, 当下在某研究院开展数据算法相关的研究工作, 依托自身科研实践经历时不时不间断地分享有关数据分析、特征工程、机器学习、深度学习、人工智能系列基础内容以及案例实例, 下定决心只搞原创内容, 通过最为简便的方式去理解与学习, 留意公众号: 数据杂坛, 获得数据以及源码去学习更多的知识内容。原文链接
返回列表