python 反射

摘要:
Importtimess##反射:根据字符串形式操作对象(模块)中的成员#根据用户输入内容导入模块input=input=__Import__uu=res。Md5按字符串打印模块中的#搜索函数,并执行#getattr以按字符串inputfunc=inputfunc=getattr搜索模块中的函数/全局变量#在res模块中搜索函数,如果找不到,print nofoundprint#hasattr()确定模块中是否存在函数或全局变量u=hasattrprint#setattr#向模块中添加全局变量:如果现有的或新的#成功,则返回none=setattrprint#none=hasattrprint#True#delattr删除模块中的变量或函数delattrm=hasattrprint#False
import timesss
##反射:根据字符串的形式去对象(模块)中操作其成员(查找/获取/删除/添加)

#根据用户输入内容,导入模块(字符串形式导入模块)

inp = input("请输入模块名:")
res = __import__(inp)

uu = res.md5("123456")
print(uu)
#字符串方式去模块中查找函数,并执行
# getattr 以字符串形式去模块中寻找函数/全局变量
inpfunc = input("请输入要执行的函数名;")
func = getattr(res,inpfunc,'no found') # 去res模块中查找inpfunc函数,找不到则打印no found
print(func())
# hasattr() 判断某个模块中是否存在某个函数或全局变量
u = hasattr(timesss,'name')
print(u)
#  setattr(object, name, value)
#给模块增加一个全局变量:现有的或一个新的
#成功返回none
t = setattr(timesss,'sex','girl')
print(t) #None
m = hasattr(timesss,'sex')
print(m)# True
#delattr(object, name)删除模块中某个变量或者函数
delattr(timesss,'sex')
m = hasattr(timesss,'sex')
print(m)#False

免责声明:文章转载自《python 反射》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SwiftUI 官方教程(一)redis教程--phpredis下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。

安装 PostgreSQL可以用Python psycopg2模块集成。 sycopg2是Python编程语言的PostgreSQL数据库的适配器。 其程序代码少,速度快,稳定。不需要单独安装这个模块,因为它默认情况下被运往随着Python版本在2.5.x一起的。如果不把它安装在机器上,然后可以使用yum命令安装它,如下所示: $yum install p...

pycharm创建虚拟环境venv和添加依赖库package

1.创建虚拟环境 因为项目采用不同版本的python,所依赖的库的版本也不一样,为了避免版本冲突,为每一个项目每个python版本创建一个虚拟环境,环境中所使用的依赖库也是独立存在,不会被其他版本或其他项目的库影响。 (1)基于python版本创建虚拟环境 在pycharm的file-setting中选中project,然后点击project interp...

Python实现多线程调用GDAL执行正射校正

python实现多线程参考http://www.runoob.com/python/python-multithreading.html #!/usr/bin/env python#coding:utf-8# #Description:# # #Author: LC#Date: # try: from osgeo importgdal except...

python 多进程

1.进程的创建 frommultiprocessing import Process import time,os def Hi(name): time.sleep(3) print("Hello %s" %name,time.ctime()) print("进程号是 ",os.getpid()) if __name__=="__...

python multiprocessing.pool.apply_async 占用内存多 解决方法

multiprocessing.pool.apply_async 可以执行并行的进程,但是会将所有进程先读入列表,对于不是很多数量的进程来说没有问题,但是如果进程数量很多,比如100万条,1000万条,而进程不能很快完成,内存就会占用很多,甚至挤爆内存。那么如何限制内存的占有量呢。网上查询,找到一种解决方法:可以检测pool._cache的长度,如果超过一...

python 换行符的识别问题,Unix 和Windows 中是不一样的

关于换行符的识别问题,在Unix 和Windows 中是不一样的(分别是n 和rn)。默认情况下,Python 会以统一模式处理换行符。这种模式下,在读取文本的时候,Python 可以识别所有的普通换行符并将其转换为单个nn 字符。类似的,在输出时会将换行符nn 转换为系统默认的换行符。如果你不希望这种默认的处理方式,可以给open() 函数传入参数new...