python 通过反射获取配置文件 中的类

python基础:反射(详解) 反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。 阅读详情

首先目录结构,conf文件夹的settings.py配置文件中配置两个类路径,写一段程序读取这个配置文件,并将类路径实例化成对象执行相关功能..

1.配置文件 settings.py:

MODE = "RAYLU"

FUNC = {
    "customer":"src.customer.Customer",
    "sales":"src.sales.Sales",
}

2.配置文件中配置的两个类Customer和Sales文件

class Customer(object):
    def __init__(self):
        pass

    def run(self):
        print("")
        return "i am customer"
class Sales(object):
    def __init__(self):
        pass

    def run(self):
        print("")
        return "i am sales"

3.读取配置文件内容,并通过反射方式实例化类对象

# import sys,os
# curPath = os.path.abspath(os.path.dirname(__file__))
# rootPath = os.path.split(curPath)[0]
# print(rootPath)
# sys.path.append(rootPath)

from reflect.conf.settings import FUNC
from reflect.conf.settings import MODE
import importlib,re

print(MODE)
for k,v in FUNC.items():
    #
    # ret_v = v.split(".")
    # ret=ret_v[0]
    # cls_name = ret_v[-1]
    # for item in range(1,len(ret_v)-1):
    #     ret+= "."+ret_v[item]
    #上面代码简写:
    ret,cls_name = v.rsplit(".",maxsplit=1) # rsplit()从最后边开始往前分割  #splitlines()通过换行符进行分割
    print(ret,cls_name)

    m = importlib.import_module(ret) #导入文件模块
    cls = getattr(m,cls_name) #通过getattr()获取模块内容,获取类名
    response = cls().run() #创建类对象并执行对象函数,获取想要的结果
    print(response)

4.执行结果:

【专题】详解Python中的反射机制 Python面向对象的反射机制一、反射的概念二、熟悉面向对象的属性方法三、面向对象的反射机制四、实例应用 一、反射的概念 python的反射机制,核心就是利用字符串去已存在的模块中找到指定的属性或方法,找到方法后自动执行——基于字符串的事件驱动。 二、熟悉面向对象的属性方法 hasattr(object,'attrName'):判断该对象是否有指定名字的属性或方法,返回值是bool类型 setattr(object,'attrName',value):给指定的对象添加属性以及属性值 getattr(obj 阅读详情

相关推荐

Python中的反射

反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。 通过字符串操作类对象 或者 模块中的相关成员的操作

景天科技苑 1472

一张图学会yaml格式

springboot可以使用yaml格式编写配置文件 swagger可以通过yaml格式编写接口文档 YAML介绍 json比xml简洁 yaml又比json简洁 我们慢慢使用yaml完成一些配置文件、接口文档的编写 JSON 4种格式 key-》基本属性 key-》对象 key-》基本数组 key-》对象数组 key-》各种嵌套 YAML有以下基本规则: 1、大小写敏感 2、使用缩进表示...

billycoder的专栏 617

Python中的反射机制

作者:禅与计算机程序设计艺术 1.简介 1.1 什么是反射机制? 在计算机科学中,反射(reflection)是指对于一个对象或模块,它所表现出的行为(接口)不是静态定义的,而是在运行时由该对象或模块自己定义。换言之,在运行时可以通过解析对象的符号来获

AI天才研究院 2560

python--反射

反射机制运行在运行时获取对象信息并调用其方法属性。是一种基于字符串的事件驱动。

zhao的博客 803

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

攻防世界 misc题GFSJ1129-【您看我还有机会吗?】

我们发现了隐藏内容,一开始我以为那个英文就是flag,提交后发现不对,然后我想只有一张图片然后图片上的隐写内容又不是flag,那必定还有什么文件被隐藏了,于是我们打开VMware并启动Ubuntu,使用binwalk分析一下有没有隐藏文件,我们要在Terminal中分析,如下。我们发现里面有一个flag.txt文件,我们尝试提取里面内容,但发现又要密码,我们想起了之前图片上的隐藏内容,我们将那段英文输入(包括空格和符号,在VMware中输入密码不会有显示,你看到的就像没输入一样),然后我们看到如下。

大数据专业,关注 AI 安全与数学建模。记录 Web 安全、对抗攻击、隐私保护等安全实践,以及从经典模型到智能方法的建模思考。用数学思维理解 AI,用 AI 方法反哺安全与建模。 1092

通过反射获取成员方法并调用

通过反射获取成员方法并调用

weixin_57219176的博客 274

YOLOv11n-seg 实战指南:从训练到模型部署的完整流程

本文提供了YOLOv11n-seg实例分割模型从环境准备、数据标注到模型训练、验证及最终部署的完整实战指南。详细讲解了如何准备多边形掩码数据、配置关键训练参数、解读分割核心评估指标,并重点介绍了将模型导出为ONNX等格式进行部署的流程与优化技巧,帮助开发者高效完成从开发到生产的全链路实践。

weixin_29062255的博客 552

python反射应用(调用方法和类中方法)——————附带详细实例

文章目录0 结果1 调用方法2 调用类中的方法3 调用测试的代码 0 结果 文件目录: 调用方法: executeModel2("model.testModel2", [1, 2]) 调用类中的方法: executeModel("model.add", [1, 2]) 优点: 自动引包; 类名和方法名通过参数传入来调用; 1 调用方法 方法: def executeModel2(config, input): model, func = config.strip().split(".")

韩江雪de 小屋 1835

centos7下100T存储扩容(LVM)至150T

查看新增磁盘情况lsblk,fdisk -l [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom vda 252:0 0 80G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2

tiyager的博客 1024

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1413

Django学习——setting.py常用配置

setting.py           这个文件包含了所有有关这个Django项目的配置信息,均大写:   TEMPLATE_DIRS , DATABASE_NAME , 等. 最重要的设置是 ROOT_URLCONF,它将作为 URLconf 告诉 Django 在这个站点中那些 Python的模块将被用到。           使用 Django 时, 你必须告诉它你使用的是哪个

gbyzzj的专栏 1816

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1015

028python-配置文件

配置文件编写分为三个区域: section:只能是中括号,中括号扩起来的叫做片段 ; option:键值对左侧的叫做option; value:键值对右侧的叫做value;

weixin_47481102的博客 764

开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记

本文系统介绍了稳压电源的基础知识与应用实验。首先阐述了稳压电源的定义与类型,包括线性稳压电源(如LM7805/7905)和开关稳压电源(降压/升压/升降压式)的工作原理、参数特点及优劣势。随后详细讲解了各类稳压电源的实验设计,如线性稳压电源的电路实现、开关稳压电源的PWM控制方法等。最后汇总了硬件工程师相关的笔试面试资源,涵盖器件知识、电路仿真、企业真题等内容。全文结合理论分析与Multisim仿真,为电子工程学习者提供了稳压电源的实用技术参考。

XU157303764的博客 1638

SAP RAP学习系列合集介绍

《SAP RAP学习系列合集:从入门到部署的完整指南》摘要: 本文介绍了作者创建的SAP RAP学习系列合集,涵盖RAP开发从基础概念到实战部署的全流程。系列目前包含17篇文章,系统讲解了RAP核心开发技术:从数据建模、UI构建到行为定义(包括并发控制、草稿功能、授权验证等),最后详细演示了应用部署到Fiori Launchpad的两种方案(OP版和ES版)。

DeveloperMrMeng的博客 1489

Django 动态导入配置文件的类

导入配置文件的类 #如何用字符串的形式动态导入模块 from importlib import import_module path=''api.cors.CORSMiddleware' #CORSMiddleware是一个类名 moudle,cls=path.rsplit('.',maxsplit=1) #导入模块 m=import_module(moud...

dianshuochi1092的博客 535

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python getattr调用自己模块_Python getattr()函数使用方法代码实例

getatter()通过方法名字符串调用方法,这个方法最主要的作用就是实现反射机制,也就是说可以通过字符串获取方法实例,这样就可以把一个类可能要调用的方法放到配置文件里,需要的时候进行动态加载。1: 可以从类中获取属性和函数新建test.py文件,代码如下:# encoding:utf-8import sysclass GetText():def __init__(self):pass@stati...

weixin_28930859的博客 581

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python面向对象魔法、元类简介及使用

详细介绍了面向对象魔法magic和元类实战案例

主要发布一些日常学习代码及理解 186

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python中的反射

反射(Reflection)是编程语言中的一个特性,它允许程序在运行时检查、调用和修改它自己的结构和行为。这意味着程序可以在运行时访问类型信息,并且能够动态地创建对象、调用方法、访问字段和属性,甚至修改类定义。

瑞瑞的博客 1853

Python反射

反射指的是一种在运行时动态地获取、操作和修改一个语言的特定对象的能力。在编程中,反射可以让程序在运行时动态地获取类的信息,包括类的属性、方法和构造函数等,而不需要在编译时确定。本文通过实际案例演示java和python在使用反射功能上的一些区别。

littleschemer的博客 1571

python元类与C#、Java中的反射

Python的元类和C#中的反射在概念上有一定的相似性,但它们的目的和使用方式有所不同。Python的元类:C#中的反射:相似之处:不同之处:总的来说,虽然Python的元类和C#中的反射在概念上有一定的相似性,但它们解决的问题和使用方式有所不同。元类是Python中一种强大的特性,但应该谨慎使用;反射是C#中一个实用的工具,广泛应用于各种编程场景。理解它们的区别和适用场景,可以帮助你更好地利用这些特性来解决实际问题。

Peter的博客 611

java反射&python反射

作为一只主学java,次学python的猿,反射的梗,怎能不知道 一、反射是什么: 维基百科上给出的定义:在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。 以我浅薄的编程思想理解的反射: 反射可以让我们在不打开程序文件的情况下,清楚的知道该程序的内部结构...

远处 1475

python类与反射

目录: 面向对象编程与面向过程编程 定义类 实例化对象 属性查找 绑定给对象的方法 反射 面向对象编程与面向过程编程 面向过程: ​ 核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么…基于该思想编写程序就好比在设计一条流水线 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差 面向对象: ​ 核心是对象二字,对象指的是特征与技能的结合体,基于该思想编写程序就好比在创造一个...

番茄炒蛋君的博客 958

浅谈Python中的反射

反射 reflection,指运行时获取类型定义的信息。 一个对象能够在运行时,如同照镜子一样,反射出其类型信息。简单而言,在Python中,能够通过一个对象,找出其type、class、attribute或者method的能力,称为反射或者自省。 Python的反射能力,主要体现在对象属性上。 有一个Point类,并提供了一个方法去查看实例属性。 class Point: def __...

迷途小书童的博客 1232

反射机制反射类中的Field

反射机制获取一个类的属性Field: Field是一个类,称为字段,属性。 例如:public int id; 整个属性的代码组成一个字段对象。 测试代码: package reflect; import java.lang.reflect.*; public class Test07 { public static void main(String[] args) { // 获取指定类的字节码文件 Class stuClass = null;

pipizhen_的博客 596
上一篇: linux环境安装python3.7
下一篇: python3 split rsplit splitline函数用法
路路的小豆
博客等级 码龄10年 1763粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值