首页 > 编程语言 >#yyds干货盘点#python关键字参数

#yyds干货盘点#python关键字参数

时间:2023-04-18 12:32:24浏览次数:40  
标签:yyds keyword parrot python argument 干货 参数 voltage print

关键字参数

kwarg=value 形式的 关键字参数 也可以用于调用函数。函数示例如下:

def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print("-- This parrot wouldn't", action, end=' ')
    print("if you put", voltage, "volts through it.")
    print("-- Lovely plumage, the", type)
    print("-- It's", state, "!")

该函数接受一个必选参数(voltage)和三个可选参数(stateaction 和 type)。该函数可用下列方式调用:

parrot(1000)                                          # 1 positional argument
parrot(voltage=1000)                                  # 1 keyword argument
parrot(voltage=1000000, action='VOOOOOM')             # 2 keyword arguments
parrot(action='VOOOOOM', voltage=1000000)             # 2 keyword arguments
parrot('a million', 'bereft of life', 'jump')         # 3 positional arguments
parrot('a thousand', state='pushing up the daisies')  # 1 positional, 1 keyword

以下调用函数的方式都无效:

parrot()                     # required argument missing
parrot(voltage=5.0, 'dead')  # non-keyword argument after a keyword argument
parrot(110, voltage=220)     # duplicate value for the same argument
parrot(actor='John Cleese')  # unknown keyword argument

函数调用时,关键字参数必须跟在位置参数后面。所有传递的关键字参数都必须匹配一个函数接受的参数(比如,actor 不是函数 parrot 的有效参数),关键字参数的顺序并不重要。这也包括必选参数,(比如,parrot(voltage=1000) 也有效)。不能对同一个参数多次赋值,下面就是一个因此限制而失败的例子:

>>> def function(a):
...     pass
...
>>> function(0, a=0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: function() got multiple values for argument 'a'

最后一个形参为 **name 形式时,接收一个字典(详见 映射类型 --- dict),该字典包含与函数中已定义形参对应之外的所有关键字参数。**name 形参可以与 *name 形参(下一小节介绍)组合使用(*name 必须在 **name 前面), *name 形参接收一个 元组,该元组包含形参列表之外的位置参数。例如,可以定义下面这样的函数:

def cheeseshop(kind, *arguments, **keywords):
    print("-- Do you have any", kind, "?")
    print("-- I'm sorry, we're all out of", kind)
    for arg in arguments:
        print(arg)
    print("-" * 40)
    for kw in keywords:
        print(kw, ":", keywords[kw])

该函数可以用如下方式调用:

cheeseshop("Limburger", "It's very runny, sir.",
           "It's really very, VERY runny, sir.",
           shopkeeper="Michael Palin",
           client="John Cleese",
           sketch="Cheese Shop Sketch")

输出结果如下:

-- Do you have any Limburger ?
-- I'm sorry, we're all out of Limburger
It's very runny, sir.
It's really very, VERY runny, sir.
----------------------------------------
shopkeeper : Michael Palin
client : John Cleese
sketch : Cheese Shop Sketch

注意,关键字参数在输出结果中的顺序与调用函数时的顺序一致。

标签:yyds,keyword,parrot,python,argument,干货,参数,voltage,print
From: https://blog.51cto.com/u_12891160/6202826

相关文章

  • python的matplotlib绘制动态图形(用animation中的FuncAnimation)
    %matplotlibauto#数据透视表:#统计各月每天的刷卡金额之和#month_day_df=pd.pivot_table(data_df,values="刷卡金额",index="日",columns="月份",aggfunc=np.sum)#用折线图表示1月份每天的刷卡金额之和importmatplotlib.pyplotaspltfrommatplotlib.animationimpor......
  • python如何使用HTTP代理来提高速度
    如何使用代理IP以及如何提高速度是Python网络爬虫中的两个非常重要的问题。今天我们就来学习一下,到底应该Python代理IP到底应该如何使用并提升速度。Python代理IP的使用在进行网络爬虫时,我们经常需要使用代理IP来隐藏自己的真实IP或者访问其他国家或地区的网站。Python的re......
  • Python认识爬虫与反爬虫
    爬虫:通过计算机去获取信息,以节约人力成本,不节约的就不需要用了。反爬虫的最终:区别计算机和人,从而达到,排除计算机的访问,允许人的访问。最终结论:爬虫与反爬虫都是有尽头的。爬虫的尽头就是极度模拟用户(自动化)。反爬虫的尽头就是机器无法识别而人类可以识别的验证码。所以,省事的......
  • python+playwright 学习-53 模拟键盘操作-复制粘贴相关
    前言playwright可以模拟键盘操作,定位到元素使用press()方法press()方法介绍locator.press()方法聚焦所选元素并产生单个击键。它接受在键盘事件的keyboardEvent.key属性中发出的逻辑键名称:Backquote,Minus,Equal,Backslash,Backspace,Tab,Delete,Escape,ArrowDown,......
  • 4. python 流程控制
    一、顺序结构代码从上到下一行行执行,没有任何判断和跳转二、if分支结构python中流程控制须格外注意缩进,否则可能遇到各种奇奇怪怪的错误elseif的写法是elif注意if,else,elif后面加冒号:False、0、各种表示空的值(None,"",'',(),[],{}),在if判断时都为假;但注意"",''(一个空格)为真pas......
  • 3. python 列表、元组和字典
    一、序列简介序列是一种包含多项数据的数据结构python常见序列类型包括字符串、元组、列表等其中字符串与元组是不可变的,而列表是可变的元组创建列表使用(),而列表使用[]>>>my_tuple=('fff',20,'dddd')>>>print(type(my_tuple))<class'tuple'>>>>print(my_tuple)('fff�......
  • 2. python 变量和简单类型
    一、注释python允许在任何地方插入空字符串与注释,但不能插入到标识符和字符串中间python注释有两种形式单行注释:以#开头的一行多行注释:被三个单引号或双引号括起来的多行#这是一行注释'''这也是一行注释用三个单引号注释可多行内容'''"""这还是一行注释用三个双引号注释......
  • [oeasy]python0133_变量名_标识符_identifier_id_locals
    变量名回忆上次内容上次讲了什么是变量变量变量能变的量就是变量 各种系统、游戏就是由变量所组成的​ 添加图片注释,不超过140字(可选) 声明了变量并且定义了变量 声明就是declaration把标识符和具体值......
  • Python Django 模板的使用
    新建templates/header.html文件<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>header</title></head><body><h1>东营职业学院</h1><p>......
  • #yyds干货盘点#python循环中的 break、continue 语句及 else 子句
    break 语句和C中的类似,用于跳出最近的 for 或 while 循环。循环语句支持 else 子句;for 循环中,可迭代对象中的元素全部循环完毕,或 while 循环的条件为假时,执行该子句;break 语句终止循环时,不执行该子句。请看下面这个查找素数的循环示例:>>>forninrange(2,10):.........