python 反射
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 反射,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
![python 反射](/upload/InfoBanner/zyjiaocheng/1065/5f938fa55a454ea38f17b3c426cc299a.jpg)
1. 反射
实例:伪造web框架中的路由系统
利用反射导入模块
obj = __import__(‘commons‘)
obj = __import__(‘lib.‘ + ‘commons‘,fromlist = True)
导入模块不在当前目录下,需要设置fromlist参数为真, 才能拼接模块路径
利用反射操作对象成员(属性)
通过传入字符串,操作(检查/获取/删除/设置)对象成员(属性)
hasattr(对象名,字符串),如果对象中存在名为字符串的属性(成员),返回True,否则返回False
getattr(对象名,字符串),如果对象中存在名为字符串的属性(成员),返回该属性(成员),否则报错
delattr(对象名,字符串),删除对象中名为字符串的属性(成员)
setattr(对象名,字符串),设置对象中名为字符串的属性(成员)
2. __builtins__里面的常量
__doc__ 文件中的注释
__cached__ 字节码文件(pyc文件)的缓存路径
__package__ 返回被导入模块所在的包名
__file__ 当前py文件的完整路径
__name__ 只有执行当前py文件时,其__name__才等于__main__
因此,一般只在主文件中,才写这样的语句:
if __name == ‘__main__‘:
run()
3. 密码加密,使用hashlib模块
示例:
import hashlib password = input(‘password:‘) obj = hashlib.md5() #生成md5对象 obj.update(bytes(password,encoding=‘utf-8‘)) #更新md5对象,存入加密密码 result = obj.hexdigest() # 对象的十六进制方法print(result)
增强版示例:
以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
import hashlib hash = hashlib.md5(‘898oaFs09f‘) hash.update(‘admin‘) print hash.hexdigest()
还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密
import hmac h = hmac.new(‘wueiqi‘) h.update(‘hellowo‘) print h.hexdigest()
4. 比较print 与 sys.stdout.write
print底层调用了sys.stdout.write,默认会换行,sys.stdout.write默认不换行
进度条示例:
import sys
def view_bar(num,total): rate = num /total rate_num = int(rate * 100) r = ‘\r{0}>{1}%‘.format(‘=‘*num,rate_num) sys.stdout.write(r) #sys.stdout.flush() # windows平台下不需要此行if__name__ == ‘__main__‘: run() for num in range(1,101): time.sleep(0.1) view_bar(num,100)
5. 正则表达式 re模块
元字符:
. 匹配换行符以外的任意字符
^ 以其后跟的字符串作为起始字符,然后进行匹配
* 代表0到多个字符
+ 代表1到多个字符
? 代表0或1个字符
{n} 代表n个字符
{1,n} 代表1到n个字符
[] 代表
re.findall()
原文:http://www.cnblogs.com/huamingao/p/6011801.html
内容总结
以上是互联网集市为您收集整理的python 反射全部内容,希望文章能够帮你解决python 反射所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。