热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享浅析pytest 钩子函数 之初始钩子和引导钩子

1.f(arg1,arg2,…)这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提

1. f( arg1, arg2, …)

这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等
的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参。例如:

def a(x,y):      print(x,y)

调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错。

2. f( arg1, arg2=value2, …)

这种方式就是第一种的改进版,提供了默认值,例如:

def a(x,y=3):      print(x,y)

调用该函数,a(1,2)同样还是x取1,y取2,但是如果a(1),则不会报错了,这个时候x还是1,y则为默认的3。上面这俩种方式,还可以更换参数位置,比如a(y=4,x=3)用这种形式也是可以的。

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 python 解释器能够用参数名匹配参数值。

3. f( *arg1 )

上面两种方式是有多少个形参,就传进去多少个实参,但有时候会不确定有多少个参数,则此时第三种方式就比较有用,
它以一个*(一个星号)加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。
注意一点是,不管有多少个,在函数内部都被存放在以形参名为标识符的元组中。

def a(*x):      print(x)  >>> a(1,2,3)  (1, 2, 3)  >>> a(x=1,y=2,z=3)  traceback (most recent call last):   file "", line 1, in   typeerror: a() got an unexpected keyword argument 'x'

将所有参数以元组(tuple)的形式导入:
实例

def foo(param1, *param2):      print (param1)      print (param2)  foo(1,2,3,4,5)

以上代码输出结果为:

1
(2, 3, 4, 5)

此外,单星号的另一个用法是解压参数列表:

实例

def foo(runoob_1, runoob_2):      print(runoob_1, runoob_2)  l = [1, 2]  foo(*l)

以上代码输出结果为:

1 2

4. f( **arg1 )

形参名前加两个*表示(双星号),参数在函数内部将被存放在以形式名为标识符的 dictionary (字典)中,这时调用函数的方法则需要采用 arg1=value1,arg2=value2 这样的形式。

def a(**x):      print(x)       >>> a(x=1,y=2,z=3)  {'y': 2, 'x': 1, 'z': 3} # 存放在字典中  >>> a(1,2,3) # 这种调用则报错  traceback (most recent call last):   file "", line 1, in   typeerror: a() takes exactly 0 arguments (3 given)  

双星号(**)将参数以字典的形式导入:

示例:

def bar(param1, **param2):      print (param1)      print (param2)  bar(1,a=2,b=3)  

以上代码输出结果为:

1
{'a': 2, 'b': 3}

示例:

def foo(a, b=10, *args, **kwargs):      print (a)      print (b)      print (args)      print (kwargs)  foo(1, 2, 3, 4, e=5, f=6, g=7)  

以上代码输出结果为:

1
2
(3, 4)
{'e': 5, 'f': 6, 'g': 7}

到此这篇关于pytest 钩子函数 之初始钩子和引导钩子的文章就介绍到这了,更多相关pytest 钩子函数内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享浅析pytest 钩子函数 之初始钩子和引导钩子,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python教程分享:使用plt.text给图中的点加标签,让Python画图更生动
    背景:今天在用matplotlib模块画各城市2019-ncov疫情确诊人数和节前流入人口数的图的时候遇到了要给图中的点加上标签示意,原本图长这个样子现在要给各散点标注是哪个哪个城 ... [详细]
  • 一json文件JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使 ... [详细]
  • Python3+Appium安装使用教程
    一、安装我们知道selenium是桌面浏览器自动化操作工具(WebBrowserAutomation)appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mo ... [详细]
  • 写在前面最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试。没想到啊,这坑太深了。。。看了看相关介绍后选择了Scrapy框架,然后兴高采烈的 ... [详细]
  • 这篇文章给大家分享的是有关python3怎样中文转换编码的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。示例:处理 ... [详细]
author-avatar
longning817
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有