Python面向对象之数据封装的应用及配置文件
面向对象封装的应用
1.配置文件
1.1 ini配置文件
ini 文件是Initialzation File
的缩写,平时用于存储软件的配置文件。例如:MySQL数据库的配置文件(my.ini)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\softnew\\MYSQL\\mysql-5.7.20-winx64
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[custom]
key1=value1
key2=this is my custom
[节点]
# 注释 #
键=值
[节点下可以有多对键值]
这种格式可以直接使用文件操作函数进行open
,自己处理较麻烦,所以 Python 提供了更方便的方式。
1.2 configparser 包
1.2.1 获取节点
import configparser
# 实例化对象
config=configparser.ConfigParser()
# 读取文件
config.read('./my.ini',encoding='utf-8')
# 获取所有的节点
ret=config.sections()
print(ret)
# 输出
['mysql', 'mysqld', 'custom']
1.2.2 获取节点下的键值
# 实例化对象
config=configparser.ConfigParser()
# 读取文件
config.read('./my.ini',encoding='utf-8')
# 获取节点下的键值
# ret=config.items("custom")
# print(ret)#[('key1', 'value1'), ('key2', 'this is my custom')],返回元组键值(键,值)
# 循环获取键值
for key,value in config.items("custom"):
print(key,value)
1.2.3 获取节点下键对应的值
config=configparser.ConfigParser()
config.read('./my.ini',encoding='utf-8')
# 传入参数,节点,和键的名字
result=config.get("custom","key1")
print(result)
# 输出
>>> value1
1.2.4 其他
1.判断是否存在节点
# 判断是否存在节点
config=configparser.ConfigParser()
config.read('./my.ini',encoding='utf-8')
ret1=config.has_section("mysql")
ret2=config.has_section("aaaa")
print(ret1,ret2)
# 输出
>>> True False
- 添加与删除
2.面向对象的封装
# -*- coding: utf-8 -*-
'''
@Time : 2022/1/13 18:58
@Author : ziqingbaojian
@File : 01.封装应用-加载配置文件.py
'''
import configparser
class ConfigContext:
def __init__(self):
self.url=str
self.pool_size=int
self.debug=int
self.debug_ip=str
self.request_timeout=str
def load_config():
# 读取 ini 文件
config_parser=configparser.ConfigParser()
config_parser.read("settings.ini",encoding='utf-8')
obj=ConfigContext()
for key,convert in obj.__dict__.items():
# 获取settings中的值
value=config_parser.get('settings',key)
# 转换成指定的数据类型
target_type_value=convert(value)#将读取到的值进行转换
# 使用反射机制进行赋值
setattr(obj,key,target_type_value)
# 返回赋值好的对象
return obj
def run():
data_dict=load_config()
# 直接通过对象来获取配置文件中的内容
print(data_dict.url)
print(data_dict.pool_size,type(data_dict.pool_size))
if __name__ == '__main__':
run()
总结:体现了类的三大特性中的数据封装,经常用作小型软件的配置文件的使用。
继续努力,终成大器!