python 知识点:反射 之 getattr()实现以字符串形式导入模块和执行函数
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,# -*- coding: utf-8 -*-#知识点:反射#通过字符串的形式去导入模块,这就是反射#并以字符串的形式执行函数#先看简单的小粒子temp = 'mysql' #这个字符串是模块的名字(
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
申报税额合计软件开发
兴业研究数据库
网络安全优化设计
uat服务器管理方法
北京航空航天网络安全学院
山东翰高数据库公司
网络安全管理工作报告
计算机软件开发工资多少
西城区网络软件开发服务保障
乌市天气预报软件开发
c数据库框架
移动软件开发课程设计计算器
上海哪里有软件开发的
动态创建数据库表
腾讯服务器战舰世界
网络安全排查 情况汇报
网络技术有运维安全
骑士领主兽x 数据库
国民传奇网络技术有限公司
教育软件开发原则
数据库如何备份到nas盘
怎删除数据库挂起文件
国外网络安全监控技术
服务器台
网络技术如何促进民主政治
网络安全周宣传图片
机房服务器安全距离
网络安全验证不了
个人软件开发增值税税率
新一代网络技术风口