发布于2019-07-30 10:32 阅读(3785) 评论(0) 点赞(6) 收藏(10)
1. python 中 match 与 search 的区别 ?
match() 函数只检测RE是不是在string的开始位置匹配, 只有在开始位置匹配成功的话才会返回, 否则返回None .
search()函数会在整个string内查找匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None .
2. python匹配HTML tag时, < .* > 和 < .*? > 有什么区别 ?
< .* > 贪婪匹配. 从第一个" < " 开始 直到最后一个 " > " 中间所有的字符都会匹配到 包括 " < > " .
< .*? > 非贪婪匹配. 从第一个 " < " 开始 到遇到的第一个 " > " 结束匹配. so 中间字符都会匹配, 但是不会包含 " < > " .
3.什么是lambda函数?它的好处是什么?
lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
lambda函数:首要用途是指点短小的回调函数。
lambda [arguments] : expression
>>> a=lambda x,y : x+y
>>> a(3,11)
4. 谈谈 对 python GIL锁 的理解 ?
GIL 锁,全局解释器锁,作用就是,限制多线程同时执行,保证同一时间内只有一个线程在执行。
线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现竞状态,即数据可能会同时被多个线程占用,造成数据混乱,这就是线程的不安全。
所以引进了互斥锁,确保某段关键代码、共享数据只能由一个线程从头到尾完整地执行,但这个有个致命问题,死锁。
死锁:若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果谁也不愿意先解锁,互相等待,程序无法执行下去,这就是死锁。
注: 需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。像 JPython 就没有GIL。然而因为CPython是大部分环境下默认的Python执行环境。所以在很多人的概念里CPython就是Python,也就想当然的把GIL归结为Python语言的缺陷。所以这里要先明确一点:GIL并不是Python的特性,Python完全可以不依赖于GIL。
https://blog.csdn.net/Com_ma/article/details/79169848
作者:可爱宝宝
链接:https://www.pythonheidong.com/blog/article/2344/6fbe55300cb3e102c49e/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!