①.、首先在当前目录下找有没有abc、abc.py
于是我改变路径,将保存的abc.py文件直接放在python的安装目录下,使用import abc命令,然后在Python交互界面用 abc.XXX(XXX是abc.py文件中的定义函数的函数名),解决了调用自定义函数问题.
#返回函数内部定义的列表
def int_list1():
return l
#将函数内部列表定义成全局的
global l
#将函数内部列表定义成函数的一个属性
print(int_list1())
print(l)
这是截图:
我们可以创建一个用来生成指定边界的斐波那契数列的函数:
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
关键字 def 引入了一个函数 定义.在其后必须跟有函数名和包括形式参数的圆括号.函数体语句从下一行开始,必须是缩进的.
函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为 docstring.(更多关于 docstrings 的信息请参考 文档字符串) 有些工具通过 docstrings 自动生成在线的或可打印的文档,或者让用户通过代码交互浏览;在你的代码中包含 docstrings 是一个好的实践,让它成为习惯吧.
函数 调用 会为函数局部变量生成一个新的符号表.确切的说,所有函数中的变量赋值都是将值存储在局部符号表.变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表.所以呢,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用.
函数引用的实际参数在函数调用时引入局部符号表,所以呢,实参总是 传值调用 (这里的 值 总是一个对象 引用 ,而不是该对象的值).[1] 一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建.
一个函数定义会在当前符号表内引入函数名.函数名指代的值(即函数体)有一个被 Python 解释器认定为 用户自定义函数 的类型. 这个值可以赋予其他的名字(即变量名),然后它也可以被当作函数使用.这可以作为通用的重命名机制:
fib
f = fib
f(100)
如果你使用过其他语言,你可能会反对说:fib 不是一个函数,而是一个方法,因为它并不返回任何值.事实上,没有 return 语句的函数确实会返回一个值,虽然是一个相当令人厌烦的值(指 None ).这个值被称为 None (这是一个内建名称).如果 None 值是唯一被书写的值,那么在写的时候通常会被解释器忽略(即不输出任何内容).如果你确实想看到这个值的输出内容,请使用 print() 函数:
① 如何从零开始编写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.
写的很直白哦,如果有什么问题大家可以留言哦,谢谢阅读,么么哒~~~
①.、函数定义
①使用def关键字定义函数
②
"""文档字符串,docstring,用来说明函数的作用"""
#函数体
return 表达式
注释的作用:说明函数是做什么的,函数有什么功能.
③遇到冒号要缩进,冒号后面所有的缩进的代码块构成了函数体,描述了函数是做什么的,即函数的功能是什么.Python函数的本质与数学中的函数的本质是一致的.
①函数必须先定义,才能调用,否则会报错.
③不要在定义函数的时候在函数体里面调用本身,否则会出不来,陷入循环调用.
④函数需要调用函数体才会被执行,单纯的只是定义函数是不会被执行的.
⑤Debug工具中Step into进入到调用的函数里,Step Into My Code进入到调用的模块里函数.
以上就是土嘎嘎小编为大家整理的python自建函数引用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!