python 知识点:反射 之 getattr()实现以字符串形式导入模块和执行函数
发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,# -*- coding: utf-8 -*-#知识点:反射#通过字符串的形式去导入模块,这就是反射#并以字符串的形式执行函数#先看简单的小粒子temp = 'mysql' #这个字符串是模块的名字(
千家信息网最后更新 2025年02月13日python 知识点:反射 之 getattr()实现以字符串形式导入模块和执行函数
# -*- coding: utf-8 -*-#知识点:反射#通过字符串的形式去导入模块,这就是反射#并以字符串的形式执行函数#先看简单的小粒子temp = 'mysql' #这个字符串是模块的名字(也就是mysql.py或sqlserver.py,后缀名不用写)func = 'count' #这个字符串是函数的名字(也就是mysql.py/sqlserver.py中的函数count)model = __import__(temp) #以字符串的形式导入模块#执行模块中的函数第一种方法print model.count() #执行模块中的函数第二种方法Function = getattr(model,func) #以字符串的形式执行函数print Function()#下面模拟一个数据库连接的小粒子#准备以下两个文件'''mysql.py文件模拟连接mysql数据库,连接正常返回1# -*- coding: utf-8 -*-def count(): return 1sqlserver.py文件模拟连接sqlserver数据库,连接正常返回2# -*- coding: utf-8 -*-def count(): return 2'''#注意:mysql.py和sqlserver.py两个文件自行定义即可,这里近用于模拟作用#并非是实际连接数据库的语句def db_count(db_name): temp = db_name #模块的名字(也就是mysql或sqlserver) func = 'count' #函数的名字(也就是mysql.py/sqlserver.py中的函数count) model = __import__(temp) Function = getattr(model,func) #以字符串的形式执行函数 return Function()#目前模拟的是默认连接sqlserver数据库status = db_count('sqlserver')#检查连接sqlserver的状态(正常状态为:2),如果不能连接,则切换连接到mysqlif status != 2: status = db_count('mysql') print '已切换为mysql,连接ID:%d' % statuselse: print 'sqlserver连接正常,连接ID:%d' % status#测试动作:#1、可将sqlserver.py中的count返回值修改成3
函数
字符
字符串
模块
形式
数据
数据库
也就是
名字
文件
utf-8
反射
两个
方法
状态
粒子
切换
知识
知识点
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库与数据库服务
山西统一软件开发服务检测中心
vpn中的服务器是什么
服务器系统运维价钱
2016服务器系统卡死
自己搭建 代理服务器
手机服务器如何设置ssl
惠普服务器内存坏了
信息的数据库管理模式替代文件
让电脑变成互联网服务器
隆昌网络技术培训学校
网络安全与维护工作总结
网安 措施 维护网络安全
浅谈网络安全技术
广州车互联网科技有限公司
工业网络技术就业待遇
我的世界服务器怎么样审核
简笔画涂色软件开发
网络安全主体的责任
手机网络安全十大变革
中南大学网络安全
教育软件开发培训
网络技术保修时间
问道自己开个服务器多少钱
网络安全事件等级界定
自如网软件开发
内网穿透 速度受服务器影响吗
贵州手机软件开发多少钱
清远物联网软件开发
北京泰华法默网络技术