python 装饰器写法
装饰器写法
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。 首先,让我们讨论下如何写你自己的装饰器。
这可能是最难掌握的概念之一。我们会每次只讨论一个步骤,这样你能完全理解它。
import functools def wx_scan(view): @functools.wraps(view) def _wrapped(*args, **kwargs): r_data = Manager.get_token_new(request.ut) print("r_data", r_data, "ut", request.ut) if not r_data or r_data.get("status", 0) != 1: myadminIndexview = MyAdminIndexView() return myadminIndexview.redirect_to_wx_scan() return view(*args, **kwargs) return _wrapped @expose('/') @wx_scan def index(self): pass
# 游客小游戏 看视频 def device_youke_mingame(name=None): def youke_mingame(view): @functools.wraps(view) def _wrapped(*args, **kwargs): try: r_json = request.get_json() device_id = r_json.get("device_id", None) device_details = DeviceDetails.get_by_id(device_id) if device_details: if name == "addition": # 30%分数加成 key = "yk|addition_3||{}".format(device_details.id) rds_extra.set(key, 0.3) rds_extra.expire(key, 3600 * 24) device_details.total_video_count = getattr(device_details, "total_video_count", 0) + 1 device_details.save() return JsonResponse.response(code=1, user_id=device_details.id) return view(*args, **kwargs) except Exception as e: logger.exception(e) return _wrapped return youke_mingame
分类:
Python常用方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了