首页 > 编程语言 >python3反射

python3反射

时间:2023-05-28 09:55:44浏览次数:47  
标签:反射 obj name 模块 str 方法 python3 属性

脚本语言系列之Python | Python反射 - 知乎 (zhihu.com)

1、基本使用

hasattr(obj,name_str)

  • 判断输入的name_str字符串在对象obj中是否存在(属性或方法),存在返回True,否则返回False。

getattr(obj,name_str)

  • 将按照输入的name_str字符串在对象obj中查找,如找到同名属性,则返回该属性;如找到同名方法,则返回方法的引用;如果未能找到同名的属性或者方法,则抛出异常:AttributeError。

setattr(obj,name_str,value)

  • name_str为属性名或者方法名,value为属性值或者方法的引用。

delattr(obj,name_str)

  • 将你输入的字符串name_str在对象obj中查找,如找到同名属性或者方法就进行删除

2、模块

如果obj是module类对象,即引入的模块,那么以上四个函数也可以基于此对模块中的函数或直接属性进行操作。

# 动态引入模块,相当于import a.b as x
x = __import__('a.b', fromlist=('b',))
# 反射获取动态引入模块中的name直接属性
print(getattr(x, 'name'))

 

标签:反射,obj,name,模块,str,方法,python3,属性
From: https://www.cnblogs.com/wd404/p/17396675.html

相关文章

  • python3多线程
    1、线程和进程计算机资源,指的是cpu计算资源、内存资源、接口读写资源等。进程:计算机中用于分配资源的最小个体。不同进程之间并不共享内存。线程:是进程内部的资源分配对象,一个进程最少会有一个线程。同一进程下的不同线程可以共享内存。2、并行和并发并行:同一时间段,交替前行。并......
  • python3函数
    1、介绍def函数名(参数列表):函数体在python中,可以直接在.py文件中,通过关键字def创建函数。2、函数与解释型python是解释型编程语言,从上到下解析,所以在调用函数时,该函数必须已经被声明。如果是在函数B声明之前,py文件中直接调用B,那么pycharm会提示异常如果是在函数B声明......
  • 自古以来,反射也是兵家必争之地
    这几天收到一个战术性需求,将一大坨字段序列化为特定格式的字符串。大概是下表这样:序号字段名描述是否必填0logVersion日志版本是1productName产品是2serviceName服务是.........25extend3扩展字段3否26extend4扩展字段3......
  • 字节码增强版的反射, jdk是操作读取我们的字节码文件
    javasissit生成类库 类池子创建,类池制造类,然后制造方法,将方法加到类里面,然后生成class, 再到jvm内存中获取哦  反射获取所有的方法      ......
  • PCI5565反射内存
    PCI5565反射内存具备多项特性,使其成为高效的数据传输解决方案。首先,它是一种高速的网络,支持nGbaud数据传输,可以快速处理大量数据。其次,PCI5565反射内存易于使用,无需过多的操作步骤即可实现数据传输。另外,它的可扩展性非常强,可方便地升级到其他形式。与操作系统和处理器无关的特性也......
  • 反射之PropertyDescriptor
    反射可以为对象的私有属性赋值java提供了一个类PropertyDescriptor通过这个类可以为对象的属性赋值需要进行赋值的对象@DatapublicclassTestEntity{privateStringusername;privateStringpassword;privateIntegerage;privateBooleansex;p......
  • 反射
    反射的概述(JavaReflection)Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包......
  • 编译安装python3.11.3
     1、下载源码包cd/usr/local/srcwget'https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz' 2、解压xz-dPython-3.11.3.tar.xztarzfPython-3.11.3.tar 3、安装编译工具和依赖包yum-yinstallgcc-c++openssl-devel 4、配置mkdir-p/......
  • PHP 反射机制打印对象
    1<?php2/**34echoObj::new('Redis');5echoObj::new('Redis')->method('set')?->isPublic();67*/89classObjextendsReflectionClass10{11publicstaticfunctionstd(?array$attrs=null)1......
  • C# 反射的定义和应用场景
     1什么是反射首先要复习一下C#的编译过程,可以解释为下图其中dll/exe中,包括元数据(metadata)和IL(中间语言IntermediateLanguage)另外还出现的其他名词:CLR(公共语言运行时,CommonLanguageRuntime)和JIT(实时编译器JustinTime)总结:一个运行的程序查看本身的元数据或......