21. 反射

server/2024/12/27 2:56:29/

一、什么是反射

  Python 是一种动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行过程中,对于任意一个类,都可以知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为 反射机制

  反射,本质上就是通过字符的形式去操作对象/模块中的成员。在 Python 中,我们可以通过四个内置函数去实现反射相关的功能。

python">getattr(object, name)                # 获取对象中的成员
getattr(object, name, default)       # 获取对象中的成员,如果没有则返回default指定的指
setattr(object, name, value)         # 设置对象中的成员
hasattr(object, name)                # 判断对象的成员是否存在
delattr(object, name)                # 删除对象的成员是否存在
python">class Person:def __init__(self,name,age):self.name = nameself.age = agedef show_info(self):print("你猜猜我是谁?")p = Person("Sakura",10)if hasattr(p,"name"):               # 判断对象的成员是否存在name = getattr(p,"name",None)   # 获取对象中的成员print(name)if hasattr(p,"age"):                # 判断对象的成员是否存在age = getattr(p,"age")          # 获取对象中的成员print(age)setattr(p,"age",12)             # 设置对象中的属性age = getattr(p,"age")          # 获取对象中的成员print(age)delattr(p,"age")                # 删除对象中的属性值print(p.__dict__)if hasattr(p,"show_info"):func = getattr(p,"show_info")func()setattr(p,"show_info",lambda : "我是一个无忧无虑的人")func = getattr(p,"show_info")msg = func()print(msg)

http://www.ppmy.cn/server/149846.html

相关文章

校园一卡通密钥管理系统基于 SSM 的高效架构搭建策略

第2章 开发环境与技术 开发校园一卡通密钥管理系统需要搭建编程的环境,也需要通过调查,对各个相关技术进行分析,选取适合本系统开发的技术与工具。 2.1 MYSQL数据库 题目确定了是一个应用程序之后,就开始按部就班的进行设计与分析…

小程序-基于java+SSM+Vue的校园水电费管理小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

C++:列表初始化

一:C98 在c98中可以用花括号{}对数组和结构体进行初始化,比如: struct A {int a;int b; }; int main() {int a[3] { 1,2,3 };A b { 1,2 };return 0; } 二:C11 c11中扩大了使用范围,所以自定义类型也可以使用了。使用…

MinerU:PDF文档提取工具

目录 docker一键启动本地配置下载模型权重文件demo.py使用命令行启动GPU使用情况 wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker一键启动 有点问题,晚点更新 本地配置 就是在Python环境中配置依赖和…

探索云原生安全解决方案的未来

我们是否充分意识到云端所面临的网络安全威胁? 在当今互联互通的世界中,维护安全的环境至关重要。云的出现扩大了潜在威胁的范围,因为它催生了机器身份(称为非人类身份 (NHI))及其秘密。随着组织越来越多地转向云原生…

【Linux】Linux权限管理:文件与目录的全面指南

在Linux系统中,权限管理是确保数据安全的关键。本文将为大家介绍Linux文件与目录的权限管理,帮助你理解如何设置和管理访问权限。无论你是新手还是有经验的用户,这里都将提供实用的技巧和知识,助你更好地掌握Linux环境。让我们一起…

前端工程化面试题目常见

前端工程化面试常见题目包括: • 谈谈你对WebPack的认识。 • Webpack打包的流程是什么? • 说说你工作中几个常用的loader。 • 说说HtmlWebpackPlugin插件的作用。 • Webpack支持的脚本模块规范有哪些? • Webpack和gulp/grunt相比有什么特…

爬虫基础之Web网页基础

网页的组成 网页可以分为三大部分–HTML、CSS 和 JavaScript。如果把网页比作一个人,那么 HTML 相当于骨架、JavaScript 相当于肌肉、CSS 相当于皮肤,这三者结合起来才能形成一个完善的网页。下面我们分别介绍一下这三部分的功能。 HTML HTML(Hypertext…