本文目录一览:
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会察看默认路径。
话题通信自定义msg为什么生成的Person.py文件显示 unicode报错
系统不兼容。因为话题通信自定义msg所生成的Person.py文件是python脚本文件,py文件读取方式有f.read、f.readline、f.readlines和f.seek,而unicode系统没有py文件的读取方式,Person.py文件与unicode系统不兼容,因此导致显示unicode报错。
RF引入自定义库
小白一枚,在此记录,方便自己回顾。
1、在python安装目录下的 Lib\site-packages 目录下新建一个目录,目录名就是库名,如我创建的TestLoginLibrary文件夹
2、在新建的TestLoginLibrary目录下创建一个python文件,扩展名为py。如:CtLogin.py
3、在新建的TestLoginLibrary目录下创建 __init__.py 文件,文件名必须固定这样。该文件的功能,就是把关键字类暴露出来,让rf能知道。注意py文件名与里面的类名应一致,貌似大小写不区分。
其内容如下:
from CtLogin import CtLogin #第一个CtLogin指刚创建的py文件,第二个CtLogin是py文件中的类名
class TestLoginLibrary(CtLogin): #这里的类名与库文件夹名称一致,括号中变量是py文件中的类名
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
4、在rf中引入新建的TestLoginLibrary,不需选择路径,直接输入“TestLoginLibrary”。
5、经过以上,自定义库的骨架就有了,下面自己在CtLogin.py中写具体要实现的功能,比如我要实现的是运行登录接口后获取cookies,方便其他接口使用。
import requests
import json
class CtLogin:
def __int__(self):
pass
def testLogin(self, userName, userPwd):
url = ""
headers = {
"Content-Type": "application/json;charset=UTF-8"
}
data = {
"userName": userName,
"authCode": "",
"userPwd": userPwd
}
res = requests.post(url=url, json=data, headers=headers)
return (res.cookies)
6、现在去rf中使用我定义的关键字“testLogin”~
每个测试人员用不同的测试用户名、密码,得到返回值,再把它设置为全局变量。
7、我把登录相关的东西都放在了Resource中,TestCase中引用关键字即可。
是不是很easy~
2019-03-05补充:
在一个library中新建多个关键字方法时,只需要在CtLogin.py文件中添加def方法即可。
Python 实现自定义添加保存&删除功能?
要保存,就物理存储,文件形式,或者数据库表格存储。程序启动读取一下就好。