① 如何从零开始编写Python函数?
参考另一篇文章:
a. 将编写的Python文件放入到RIDE 某个Project的一个用于存放Custom Library的文件夹下
b. 在Directory或者Test Suite或者Test Case Level的Edit Page中Import对应的python文件作为library
其中黑色的Library表示引用成功.
红色的表示引用失败(一般都是文件路径错误,或者文件编译出错).
蓝色的表示引用的是关键字或者定义的变量资源.
如下图所示,我的PreparePremia.py被添加到Attribution Test Suite级别了,所以这个Test Suite下面所有的Test Case都可以解析该python中的函数,我们看看"save_monthly_premia_data"是如何被用到Test Step中的:
Test Step的最后一行关键字"Save Monthly Premia Data"就是调用了该文件中的关键字:
我们打开Test Case可以看到添加Test Step的table,明显就能看出如何调用python中的函数.
但是打开Test Suite面板,我们看到了什么?
只有Settings, variables 和Metadata区域...
截图上我在Suite Setup的时候调用了一个自定义关键字"Get Input Params",并且传递了两个参数"${SUITE NAME}"和"RiskAttributionCalculation",那这个关键字是怎么来的呢?
可以看到这个自定义关键字其实也是调用了"ExcelUtil.py"文件中的"parse_input_params"函数的:
并且还设置了一个Suite级别的全局变量"${input_params}".
所以:
Suite Setup的意思就是:
调用自定义关键字"Get Input Params"得到一个全局变量"${input_params}".
所以呢:
Test Suite级别都是引用自定义的关键字来初始化某些值.而这个自定义的关键字会调用Python文件中的函数.
因为MonthlyPremia是Attribution Suite下面的Test Case, 所以这个Case是可以直接调用"${input_params}"的哦~~.
我返回的input_params是dict,所以需要传入key来得到对应的Value.
写的很直白哦,如果有什么问题大家可以留言哦,谢谢阅读,么么哒~~~
一些python常用函数包:
线程安全
连接池
使用分段编码上传文件
用来重试请求和处理 HTTP 重定向的助手
支持 gzip 和 deflate 编码
HTTP 和 SOCKS 的代理支持
pip是"Pip Installs Packages"的首字母递归缩写.
pip很容易使用.要安装一个包只需pip install package name即可,而删除包只需pip uninstall package name即可.
最大优点之一是它可以获取包列表,通常以requirements.txt文件的形式获取.该文件能选择包含所需版本的详细规范.大多数 Python 项目都包含这样的文件.
python-dateutil模块提供了对标准datetime模块的强大扩展.我的经验是,常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块.
近年来,几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它.加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为.
IDNA的核心是两个函数:ToASCII和ToUnicode.ToASCII会将国际 Unicode 域转换为 ASCII 字符串.ToUnicode则逆转该过程.在IDNA包中,这些函数称为idna.encode()和idna.decode()
YAML是一种数据序列化格式.它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它.
PyYAML是 Python 的YAML解析器和发射器,这意味着它可以读写YAML.它会把任何 Python 对象写成YAML:列表、字典,甚至是类实例都包括在内.
①.0、Pyasn1
像上面的IDNA一样,这个项目也非常有用:
①.1、Docutils
Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML 和 LaTeX 等.Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown 的易读标记语法.
rsa包是一个纯 Python 的 RSA 实现.它支持:
加密和解密
签名和验证签名
它既可以用作 Python 库,也能在命令行中使用.
JMESPath,发音为"James path",使 Python 中的 JSON 更容易使用.它允许你声明性地指定如何从 JSON 文档中提取元素.
它是用于创建 Python 包的工具.不过,其文档很糟糕.它没有清晰描述它的用途,并且文档中包含无效链接.最好的信息源是这个站点,特别是这个创建 Python 包的指南.
像dateutils一样,这个库可帮助你处理日期和时间.有时候,时区处理起来可能很麻烦.幸好有这样的包,可以让事情变得简单些.
使用 Colorama,你可以为终端添加一些颜色:
更多Python知识请关注Python自学网
Lambda 函数
Python 函数一般使用 def a_function_name() 样式来定义,但是对于 lambda 函数来说,我们其实根本没为它命名.这是因为 lambda 函数的功能是执行某种简单的表达式或运算,而无需完全定义函数.
Map 函数
Map() 是一种内置的 Python 函数,它可以将函数应用于各种数据结构中的元素,如列表或字典.对于这种运算来说,这是一种非常干净而且可读的执行方式.
Filter 函数
filter 内置函数与 map 函数非常相似,它也将函数应用于序列结构(列表、元组、字典).二者的关键区别在于 filter() 将只返回应用函数返回 True 的元素.
Itertools 模块
Python 的 Itertools 模块是处理迭代器的工具集合.迭代器是一种可以在 for 循环语句(包括列表、元组和字典)中使用的数据类型.
使用 Itertools 模块中的函数让你可以执行很多迭代器操作,这些操作通常需要多行函数和复杂的列表理解.
Generator 函数
其实,Generator函数是一个类似于迭代器的函数,就是它也可以用在 for 循环语句中.这大大简化了你的代码,而且相比简单的 for 循环,它节省了很多内存.
好像没有特别的叫法吧,也没注意手册上有什么特别的叫法,至于区别,举个例子你就清楚了,如下:
也就是说第一种方式会改变原列表,而第二种不会改变,只是得到了一个新的副本.
GOT IT?!^^
补充一下,如果非要说叫法上的区别的话,第一种叫做方法调用,第二种叫做函数调用.至于方法和函数的些微区别,方法是基于对象的,函数是基于本身的.如果再详细......方法一般不可以单独使用,因为大部分方法是基于对象的,调用也必须基于对象,像上面第一种;而函数则可以单独使用,你可以理解成它是数据系统本身的,而不是对象专有的.
PS:至于为什么我换了用sort()而没有用LZ给的例子函数,是因为.....^o^......LZ第一种方式和第二种方式写的都不是一个函数......
以上就是土嘎嘎小编为大家整理的python函数套用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!