反射 __import__
__import__
根据字符串导入模块
def run():
inp = input('请输入URL:')
m,p = inp.split('/')
obj = __import__(m)
if hasattr(obj,p):
fun = getattr(obj,p)
fun()
else:
print(404)
if __name__ == '__main__':
run()
4反射
利用字符串的形式去对象(模块 )操作成员
操作 :
getattr(modu,str)
hasattr(modu,str)
setattr(modu,str)
delattr(modu,str)
导入模块
import xxx
from xxx import oooo
obj = __import__('xxx')
obj = __import__('xx.oo.xx',fromlist=True)
不同路径的时候
if hasattr(commons,inp):
getattr
func = getarrt(commons,inp)
func()
else:
print(404)
__name__--执行当前文件时,当前文件的特殊变量__name__ =="__main__"
__doc__ --获取文件的注释
__cached__----字节码路径
__package__ ==== 当前的文件包执行谁以谁为主,
__file__----获取当前pyc所在的路径
os.path.abspath(__file__) 获取绝对路径
os.path.dirname() ---获取上级目录
os.path.join ---系统路径的拼接
vars()----查看模块里有哪些变量
res = sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
print(res)
sys ---python解释器相关的
sys.argv()
sys.
\r 重新回到当前行的位置
进度条
def view_bar(num,total):
rate =num / total
rate_num = int(rate * 100)
r = '\r %s%d%% ' % ('='* num,rate_num,)
sys.stdout.write(rate)
os ----系统相关的
os.stat('path/filename') --获取文件/目录信息
加密模块
hashlib
obj = hashlib.md5(bytes('自定义str',encoding='utf-8))
obj.update(bytes('123',encoding='utf-8'))
result = obj.hexdigest()
print(result)
import hashlib
obj = hashlib.md5(bytes('liushubao',encoding='utf-8'))
obj.update(bytes('123456789',encoding='utf-8'))
result = obj.hexdigest()
print(result)
正则表达式
import RE
re.findall('规则','str')
. 统配符 0
* 0 多个
+ 1 个
? 0 个 1 个
{自定义匹配的范围}
[ ] 里面字符集 匹配里面的一个
[^ ] 非的意思
[\] ---- 反斜杠后面跟元字符去除特殊功能
反斜杠后面跟符去除特殊功能
正则分组:
去已经提取到的数据中在提取
反射 __import__的更多相关文章
- Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)
一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻 ...
- (转)Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)
原文:http://www.cnblogs.com/xiaozhiqi/p/5778856.html https://blog.csdn.net/zong596568821xp/article/det ...
- Python全栈--9 __import__ 反射和面向对象基础 self 封装 继承(多继承的顺序) 多态
一.反射 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删 ...
- python中反射(__import__和getattr使用)
反射: 1.可通过字符串的形式导入模块 1.1.单层导入 __import__('模块名') 1.2.多层导入 __import__(' list.text.commons',fromlist=Tru ...
- Python(六)面向对象、异常处理、反射、单例模式
本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issu ...
- python 反射
python 反射的核心本质其实就是利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! 反射的四个基本函数使用 hasattr,getattr,setatt ...
- python中的反射
在绝大多数语言中,都有反射机制的存在.从作用上来讲,反射是为了增加程序的动态描述能力.通俗一些,就是可以让用户参与代码执行的决定权.在程序编写的时候,我们会写很多类,类中又有自己的函数,对象等等.这些 ...
- python反射问题
python中的__import__是以字符串的形式反射导入模块并以字符串的形式执行函数
- Python模块之常用模块,反射以及正则表达式
常用模块 1. OS模块 用于提供系统级别的操作,系统目录,文件,路径,环境变量等 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("di ...
随机推荐
- 有关windows系统的EXE和DLL文件说法错误
正确答案: B C 你的答案: C (错误) EXE和DLL文件都是PE文件 EXE不能有导出函数,DLL可以有导出函数 EXE有x86和x64之分,则DLL没有 EXE可以单独运行,DLL则不行 ...
- Emmet使用
emmet官方文档 [翻译]Emmet (ZenCoding) 缩写语法 <!-- ul>li.item$*5 --> <ul> <li class="i ...
- Linux下查看某进程相关进程
1- ps -T <pid> ###pid表示进程号 或者ps -T -p <pid> 2- top -H -p <pid> ###pid表示进程号 3- ...
- 用jsonp格式的数据进行ajax post请求变成get
因为 dataType 是 jsonp 而不是 json jsonp不支持POST跨域,所以会自动转成GET而关于jsonp为什么不支持post请求,百度到的答案是jsonp为动态的script,没有 ...
- installing mysql,this may take a few minutes,hold on plz wdcp卡住解决办法
centos6安装wdcp时make in progress卡住的解决办法 今天在一台centos6的vps上安装wdcp出现的这个问题,到安装程序滚动至下面这里时出现"卡死". ...
- express 的 app.get和app.use
1.若调用app.get()时只有一个参数,则认为是取设置值,否则认为是注册路由 2.所有被 app.use() 接收的 handle 会被放到一个 stack 里边 app.get() 执行的时候会 ...
- RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-29(提供下载)
本次主要更新内容: 1.增加对Oracle表创建语句的查看. 2.新增对MySql的代码生成支持. 3.全面重构对多线程的支持,改变以前会无故退出的现象. RDIFramework.NET代码生成器V ...
- linux基础
用户管理: id:可以查看当前用户 whoami:查看当前的用户 who:看当前已经登录的用户 w:也可以看 添加用户:useradd name 添加用户组: useradd -g groupnam ...
- Django根据现有数据库建立model
Django引入外部数据库还是比较方便的,步骤如下 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自动生 ...
- html特殊字符
平时写代码很少用到HTML的特殊字符,最常用的可能是 了,但有时在移动端为了节省时间,可能会用这些字符实现某种特殊效果,现整理如下: 使用方法: 这些字符属于unicode字符集,所以,你的文档需要声 ...