重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r’自定义的模块路径’)实例如下:
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为新昌企业提供专业的成都网站制作、成都做网站、外贸营销网站建设,新昌网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
1、在E:pycharm新建hello.py实现基础功能函数(定义一个hello()函数)
2、 调用自定义的函数
3、 运行结果为:
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中如何调用自己写的函数的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
函数调用的基本语法格式如下所示:
[返回值] = 函数名([形参值])
其中,函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值。如果该函数有返回值,我们可以通过一个变量来接收该值,当然也可以不接受。
import语句
自定义模块可以采用import语句来进行引入,其操作步骤是先导入模块,再调用模块中包含的函数,可将自定义模块放入当前目录,便于解释器路径搜索,以下是导入自定义hello.py模块,并调用World函数的实例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#导入模块
import hello
#现在可以调用模块里包含的函数了
support.print_func("World")
输出结果为:
Hello World!
以上实例也可以采用from…import的方法进行实现,是指从一个模块中导入指定的部分到当前命名空间中,以上功能可写成:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import World
如果要将模块中的所有内容全部导入当前命名空间,可采用from…import*的方法,具体实例如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import *
还需注意,当要导入一个模块时,Python解释器会对模块的位置进行搜索,具体搜索顺序规律如下:
1.当前目录;
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录;
3.如果都找不到,Python会察看默认路径。
1、首先在当前目录下找有没有abc、abc.py
2、找python的安装目录:F:\Python2.7Exe\Lib\site-packages;F:\Python2.7Exe\Lib;
3、找电脑中path下面的目录
于是我改变路径,将保存的abc.py文件直接放在python的安装目录下,使用import abc命令,然后在Python交互界面用 abc.XXX(XXX是abc.py文件中的定义函数的函数名),解决了调用自定义函数问题。
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
如下实例调用了printme()函数:
复制代码 代码如下:#!/usr/bin/python
# Function definition is here
def printme( str ):
"打印任何传入的字符串"
print str;
return;
# Now you can call printme function
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");
#以上实例输出结果:
#我要调用用户自定义函数!
#再次调用同一函数
1. 如何从零开始编写Python函数?
参考另一篇文章:
2. IDEA如何调用编写的Python文件?
a. 将编写的Python文件放入到RIDE 某个Project的一个用于存放Custom Library的文件夹下
b. 在Directory或者Test Suite或者Test Case Level的Edit Page中Import对应的python文件作为library
其中黑色的Library表示引用成功。
红色的表示引用失败(一般都是文件路径错误,或者文件编译出错)。
蓝色的表示引用的是关键字或者定义的变量资源。
3. Python 文件中的函数如何被添加到Test Step中调用?
如下图所示,我的PreparePremia.py被添加到Attribution Test Suite级别了,所以这个Test Suite下面所有的Test Case都可以解析该python中的函数,我们看看“save_monthly_premia_data”是如何被用到Test Step中的:
Test Step的最后一行关键字"Save Monthly Premia Data"就是调用了该文件中的关键字:
可以按F5查看:
4. Python文件中的函数如何被Test Suite调用?
我们打开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文件中的函数。
5. 得到的Suite级别的变量如何被调用呢?
因为MonthlyPremia是Attribution Suite下面的Test Case, 所以这个Case是可以直接调用"${input_params}"的哦~~。
我返回的input_params是dict,所以需要传入key来得到对应的Value。
写的很直白哦,如果有什么问题大家可以留言哦,谢谢阅读,么么哒~~~