python面试题汇总04

1.requests库
    https://blog.csdn.net/weixin_45568391/article/details/111479470
2.celery的delay的参数
3.redis支持几种类型
    str,list,set,zset,hash
4.线程安全
    函数参数用值传递而不是引用传递
    不用静态变量和全局变量(不写闭包)
4.1多级缓存
5.python2与3的区别
6.CPython的全局解释器锁
     https://www.cnblogs.com/SuKiWX/p/8804974.html
    1.python多线程只对I/O密集型应用有用
    2.CPython各版本在优化加锁和释放锁的策略
        – 将切换颗粒度从基于opcode计数改成基于时间片计数
        – 避免最近一次释放GIL锁的线程再次被立即调度
        – 新增线程优先级功能(高优先级线程可以迫使其他线程释放所持有的GIL锁)
7.python gc机制
    https://wujincheng.blog.csdn.net/article/details/105775608
    Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率
8.设计模式
    8.1单例模式
    8.2工厂模式
    8.3建造模式
    8.4适配器模式
    8.5修饰器模式
    8.6外观模式
        外观模式又叫做门面模式。在面向对象程序设计中,解耦是一种推崇的理念。但事实上由于某些系统中过于复杂,从而增加了客户端与子系统之间的耦合度。例如:在家观看多媒体影院时,更希望按下一个按钮就能实现影碟        机,电视,音响的协同工作,而不是说每个机器都要操作一遍。这种情况下可以采用外观模式,即引入一个类对子系统进行包装,让客户端与其进行交互。
        外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为       门面模式,它是一种对象结构型模式。
9.python高级特性
    9.1迭代器与生成器

  • 通过实现迭代器协议对应的__iter__()和next()方法,可以自定义迭代器类型。对于可迭代对象,for语句可以通过iter()方法获取迭代器,并且通过next()方法获得容器的下一个元素。
  • 像列表这种序列类型的对象,可迭代对象和迭代器对象是相互独立存在的,在迭代的过程中各个迭代器相互独立;但是,有的可迭代对象本身又是迭代器对象,那么迭代器就没法独立使用。
  • itertools模块提供了一系列迭代器,能够帮助用户轻松地使用排列、组合、笛卡尔积或其他组合结构。
  • 生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__()和next()方法。
  • 生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果。
    # 下面是一个生成器
    def generator(n):
        a, b = 0, 1
        for i in range(n):
            a, b = a+b, a
            yield a
    
    # 下面是一个迭代器
    class Fibonacci:
        def __init__(self, n):
            self.n = n
        def __iter__(self):
            self.a, self.b = 0, 1
            return self
        def __next__(self):
            if self.n>0:
                self.a, self.b = self.a+self.b, self.a
                self.n -=1
                return self.a
            raise stoplteration
    for i in Fibonacci(6):
        print(i)

     

    9.2 上下文管理器
    

class open_file:
    def __init__(self, path, mode):
        self.path=path
        self.mode=mode
        self.file=None
    def __enter__(self):
        self.file=open(path, mode)
    def __exit__(self):
        if not self.file:
            self.file.close()


    9.3 装饰器

def decoration(func):
    def warp():
        ....
        func()
        ....
    return warp

10.mysql的搜索引擎
11.mysql的锁
12.六大设计原则
    12.1开闭原则
    12.2迪米特法则
    12.3里氏替换法则
    12.4依赖倒置原则
    12.5借口隔离原则
    12.6单一职责原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值