面试题汇总(三)
import os
def search(path, name):
# listdir可以列出给定的目录文件名
file_list = os.listdir(path)
print(file_list)
# 遍历目录
for x in file_list:
# 判断要查找的文件名是否在目录中
if name in x:
# 输出查询文件的路径
print(os.path.join(path, x))
path = input('请输入文件夹目录:')
name = input('请输入要查询的文件:')
search(path, name)
2.python中search和match的区别
search和match都是正则表达式里面的函数:
match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回None.
search()函数会在整个字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,
该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
3.python中类变量和实例变量的区别
1.类变量不通过实例化后可直接打印输出,类变量存储在类的内存中。
2、如果同时有类变量和实例变量,程序执行时,首先去找实例变量,如果实例变量不存在,就去执行类变量。
4.请介绍下装饰器?怎么保留修饰函数的元数据
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿}
通过 functools模块中的wraps, update_wrapper方法实现,每个都可单独实现保留修饰函数的元数据
5.python全局锁GIL
定义:简单来说就是一个互斥体(或者说锁),这样的机制只允许一个线程来控制Python解释器
优点:
-
提高单线程程序的执行速度
-
更易于集成c拓展模块
缺点: