Python 函数参数

liftword2个月前 (03-17)技术文章7

1.函数基本参数

#基本样例 函数参数的定义要和调用参数匹配,否则会报错
def fun01(a, b):
    print(a, b)
if __name__ == '__main__':
    # 正确的调用
    fun01(1, 2)
    # 错误 传递的多元的参数
    fun01(1, 2, 3)
    # 错误少传递的参数
    fun01(1)

2.可变参数

# 定义参数时在参数前面加*,代表会将调用的参数合成一个元组,如果没有传递
# 参数,就代表时一个空元组
def fun01(*args):
    print(args)
    print(len(args))

if __name__ == '__main__':
    # 合法调用,因为没有传递参数,args是一个空元组
    fun01()
    # 合法
    fun01(1, 2, 3)
    # 合法
    fun01(1, 2, "hell")
    # 不合法,无法处理key=value格式的参数
    fun01(1,2,name="tom")

3. 位置参数

def fun01(a, b):
    print(a, b)

if __name__ == '__main__':
    # 因为使用了位置参数,两次调用时等价的
    fun01(a="1", b="2")
    fun01(b="2", a="1")

4. 可变位置参数

# kwargs参数加了**,代表kwargs会将参数转换成字典类型
def func01(**kwargs):
    print(kwargs)

if __name__ == '__main__':
    # 无参数,空字典
    func01()
    func01(name="tom")
    func01(name="jack", age=11)
    # 不合法,无法转换成字典格式
    func01(1)

5.默认参数

# 如果未传递b,则b被赋值成1
def func01(a, b=1):
    print(a, b)

if __name__ == '__main__':
    func01(1)
    print(1, 2)

6.控制参数的传递方式

# a 位置参数必须传递
# kwargs可选参数,但是如果传递必须以命名参数的方式传递
def func01(a, **kwargs):
    print(a)
    print(kwargs)

if __name__ == '__main__':
    func01(3)
    func01(3,name="tom",age=11)

# block 参数必须传递,且是命名参数的方式因为中间的*
# 像一个黑洞会吞噬maxsize后面的位置参数
def recv(maxsize, *, block):
    'Receives a message'
    pass

if __name__ == '__main__':
    recv(3,block=True)

7.使用partial减少函数的参数

from functools import partial

def many_arguments(a, b, c, d, e):
    print(a,b,c,d,e)
    return a + b + c + d + e

if __name__ == '__main__':
    # 将many_arguments函数中的参数a和b固定成1和2,返回一个新的函数
    # 新的函数s1只需要传递c d e 这三个参数
    s1 = partial(many_arguments, 1,2)
    print(s1(2, 3, 4))

相关文章

Python 函数之参数

定义一个函数非常简单,但是怎么定义一个函数,需要什么参数,怎么去调用却是我们需要去思考的问题。如同大多数语言一样(如 Java),Python 也提供了多种参数的设定(如:默认值参数、关键字参数、形参...

Python命令行参数解析模块argparse

前言以前 optparse 比较火,但是在python2.7版本后,官方不再维护这个模块,转而大力支持 argparse 。argparse 模块可以让人轻松编写用户友好的命令行接口。她可以从 sys...

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

这是我的第217篇原创文章。一、引言函数,在定义的时候,可以有参数的,也可以没有参数。从函数定义的角度来看,参数可以分为两种:必选参数:调用函数时必须要指定的参数,在定义时没有等号可选参数:也叫默认参...

python函数参数详解

python有两种传参的方式,位置参数和关键字参数位置参数位置参数是基于它们的位置或顺序传递给函数的参数。这些参数是必需的,并且必须按照与函数参数列表匹配的正确顺序提供。以下是一个示例:def gre...

如何在运行 Python 脚本文件时传递参数

在 Python 中,可以使用命令行参数为程序传递额外的信息。在操作系统的命令行运行 Python 脚本文件时,文件名称之后添加的参数称为命令行参数。可以根据需要使用这些命令行参数,比如根据不同的参数...

Python教程(25)——Python中参数类型详解

当我们在编写函数时,会定义一些占位符,这些占位符就是参数,参数是函数定义中用于接收外部传递值的占位符,这个会帮助我们在函数被调用时接收外部传递的值。在Python当中,有各种各样类型的参数,主要有位置...