反射 __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 ...
随机推荐
- 20145220&20145209&20145309信息安全系统设计基础实验报告(4)
20145220&20145209&20145309信息安全系统设计基础实验报告(4) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132246 ...
- rabbitmq之消息重入队列
说起消息重入队列还得从队列注册消费者说起,客户端在向队列注册消费者之后,创建的channel也会被主队列进程monitor,当channel挂掉后,主队列进程(rabbit_amqqueue_proc ...
- 通过命令创建vue项目
环境要求: 安装有 Node.js. vue. vue-cli . 创建项目: vue init webpack projectName 进入项目,下载依赖: npm install 或者 cnpm ...
- Immutable api example
var temp=[{name:"kitty",age:31},{name:"ff",age:22},{name:"kitty",age:4 ...
- ACM集训的第。。。诶~不知道第几题=.=
题目: 郭铮鹏认为排序是一种很频繁的计算任务,所以他考虑了一个简单的问题:现在最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2 ...
- sparksql---通过pyspark实现
上次在spark的一个群里面,众大神议论:dataset会取代rdd么? 大神1:听说之后的mlib都会用dataset来实现,呜呜,rdd要狗带 大神2:dataset主要是用来实现sql的,跟ml ...
- web前端开发学习路径图
第一阶段 WEB前端工程师课程 HTML语句,HTML页面结构.css语法.style属性.link和style标签.id属性.等HTML语句中的相关属性: 通过Dreamweaver制作出跨越平台限 ...
- neXtep 安装过程整理
1 授权root用户远程登录 2 文件下载 http://www.nextep-softwares.com/ 选择DOWNLOAD NOW 选择你需要的版本 我选择的版本是 neXtep.1.0.7 ...
- 如何使用JDBC链接数据库
1.加载数据库驱动 不同的数据库加载的驱动不一样 Class.forName(com.MySQL.jdbc.Driver) Class.forName(oracle.jdbc.driver.Oracl ...
- Web页面中5种超酷的Hover效果
hover 效果能给网页增加一些动态效果,并且使得站点更具有活力.原来的做法是使用javascript来实现这些动态效果,但是随着CSS3的引入和现代浏览器 的支持,我们可以用纯粹的CSS代码来实现这 ...