首页 > 代码库 > python面试题

python面试题

1、写一个装饰器,限制一个函数的访问频率,比如说10秒。

# -*- coding:utf-8 -*-

import redis

redis_cli = None


def init_redis():
    global redis_cli
    if not redis_cli:
        redis_cli = redis.Redis(host=127.0.0.1, port=6379, db=0)


def test(func):
    def warp(*args, **kwargs):
        func_name = func.__name__
        global redis_cli
        if redis_cli.get(func_name):
            return 请求太快了
        else:
            redis_cli.set(func_name, func_name, ex=10)
            return func(*args, **kwargs)
    return warp


@test
def get_plus(a, b):
    return a+b

if __name__ == __main__:
    init_redis()
    aa = get_plus(1, 2)

 

 

python面试题