Python ————反射机制
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
# commons.py 文件 name = "nick" def f1():
return "This is f1." def f2():
return "This is f2." def nb():
return "This is niubily." # index.py 文件
import commons #根据字符串的形式去某个模块中寻找东西
target_func = getattr(commons,"f1") # 找函数
result = target_func()
print(result) target_func = getattr(commons,"name") # 找全局变量
print(target_func) target_func = getattr(commons,"age",None) # 找不到返回None
print(target_func) #根据字符串的形式去某个模块中判断东西是否存在
tarhas_func = hasattr(commons,"f5") # 找函数
print("before:",tarhas_func) # tarhas_func = hasattr(commons,"name") # 找全局变量
# print(tarhas_func) #根据字符串的形式去某个模块中设置东西
setattr(commons,"f5","lambda x: return \"This is new func.\"") # 设置一个函数
setattr(commons,"age",18) # 设置全局变量 tarhas_func = hasattr(commons,"f5") # 检查函数是否存在
print("after:",tarhas_func) #根据字符串的形式去某个模块中删除东西
delattr(commons,"f5") # 删除一个函数 tarhas_func = hasattr(commons,"f5") # 检查函数是否存在
print("end:",tarhas_func)
对象实例
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age def show(self):
print("获取到了该函数方法") obj=Foo('2018世界杯',2018)
#hasattr 是否存在字段
print(hasattr(obj,'name'))
#getattr获取信息
getname=getattr(obj,'name')
print(getname)
#setattr赋值
setattr(obj,'time','2018-6-16')
print(obj.time)
#delattr删除
delattr(obj,'name')
print(obj.name)#删除后报错AttributeError: 'Foo' object has no attribute 'name'
Python ————反射机制的更多相关文章
- Python反射机制理解
Python反射机制用沛齐老师总结的话说就是:利用字符串的形式去对象(模块)中操作(寻找)成员. getattr(object, name) object代表模块,name代表模块中的属性或成员,该函 ...
- python反射机制深入分析
对编程语言比较熟悉的朋友,应该知道“反射”这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面结合一个web路由的实例来阐述pyth ...
- python 反射机制在实际的应用场景讲解
剖析python语言中 "反射" 机制的本质和实际应用场景一. 前言 def s1(): print("s1是这个函数的名字!") s = "s1&q ...
- Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数
反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化 ...
- python: 反射机制;
import comma def run(): inp = input('请输入要调用的函数').strip(); if hasattr(comma,inp): fun = getattr(comma ...
- Python 反射机制
Python的反射机制 Python的反射机制,就是反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函数,并执行.利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员 ...
- 【Python】python 反射机制在实际的应用场景讲解
剖析python语言中 "反射" 机制的本质和实际应用场景一. 前言 def s1(): print("s1是这个函数的名字!") s = "s1&q ...
- Python面试题之Python反射机制
0x00 前言 def f1(): print('f1') def f2(): print('f2') def f3(): print('f3') def f4(): print('f4') a = ...
- python 反射机制 ( 广泛应用于URL参数)
web实例 考虑有这么一个场景,根据用户输入的url的不同,调用不同的函数,实现不同的操作,也就是一个url路由器的功能,这在web框架里是核心部件之一.下面有一个精简版的示例: 首先,有一个comm ...
随机推荐
- web.xml启动spring详解
https://blog.csdn.net/king_cannon_fodder/article/details/79328576 详细介绍:https://www.cnblogs.com/wkrbk ...
- 三种方法获取Class对象的区别
有关反射的内容见 java反射 得到某个类的Class对象有三种方法: 使用“类名.class”取得 Class.forName(String className) 通过该类实例对象的getClass ...
- py-day2 python 列表
1.列表的基本格式: 2.列表中可以嵌套任何类型: 中括号括起来.逗号分割每个元素. 列表中的元素可以是:数字/字符串/列表/布尔值 等等,所有的都能放进去. 集合内部可以放置任何东西. 3.通过索引 ...
- CenterOS下安装Nginx
1. 安装gcc 检查版本命令 gcc -v 安装命令 yum install gcc-c++ 2. 安装pcre 命令 yum install prce-devel 3. 安装zlib 命令 yu ...
- linux mv命令详解
Linux mv命令 Linux mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 用法: mv [选项]... [-T] 源文件 目标文件 mv [选项]... 源文件... 目录 mv ...
- linux进程监控和简单的重启&服务的创建 参考自http://blog.csdn.net/lockheed_hong/article/details/73549837
脚本文件 该脚本实现了一个检测进程是否存在,不存在的情况下重启进程并且记录日志. #! /bin/sh proc_name="console/queue/gift.php" # 进 ...
- 在同一台电脑安装python 2 和3,并且怎样安装各自的pip和模块
安装python2.7 和 3.6不冲突直接安装就行 安装pip 访问https://pip.pypa.io/en/stable/installing/获取地址 curl https://bootst ...
- TCP/UDP端口列表(WIKIpedia)
计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...
- linux新手非常有用的20个命令
引用:http://www.oschina.net/translate/useful-linux-commands-for-newbies 1. ls命令 ls命令是列出目录内容(List Direc ...
- iCheck .js各种各样的插件 fuck Javascript
http://www.bootcss.com/p/icheck/ 1.先看下网上下载的demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...