python的config.ini文件的读写的封装
背景
搭建接口自动化框架时,便于代码的易维护,讲一些固定的参数写在config.ini文件中,所以需要封装一个config文件的类
代码块
import configparser #python自带的config.ini文件读取库
from config import setting # 博主自己封装的文件路径库,用来获取文件层路径
class LocalconfigUtils():
config_file_path = setting.files_path + "\\" + "config.ini"
#setting.files_path,会自动获取到config文件所在的路径
def __init__(self,config_file_path=config_file_path):
self.conf = configparser.ConfigParser() # 命名一个ConfigParser的类对象
self.conf.read(config_file_path,encoding="utf-8") # 读取整个config文件
@property # 把方法变为属性方法
def URL(self):
url_value = self.conf.get("default","URL")
# 使用configparser类里封装的get方法获取config文件的值,需要两个传参,第一个位置参数为文件的[]内容
#第二个位置参数为文件里的变量名
return url_value
@property
def Smtp_server(self):
smtp_server_value = self.conf.get("email","smtp_server")
return smtp_server_value
conf = LocalconfigUtils()
# 声明一个类的对象,方便直接调用类的属性,@property的功能就是讲实例方法变成类的属性,可以通过conf.def名 进行函数调用
config.ini文件的写法
执行结果:
执行命令代码块
if __name__ == '__main__':
print(conf.Smtp_server)
print(conf.URL)
结果显示
答疑
之所以可以直接使用conf调用方法,是因为装饰符== @property == 将类的实例方法变成了属性,然后在代码的最后一行的conf = LocalconfigUtils() 声明了一个类的对象,然后在导包引用该类的时候,类的对象也被引用了