python:可变参数与apply
我觉得算是python里相对比较高级的一个用法吧,不知道C里有没有,这里的特殊之处是,由于一个接口已经对外公开了,所以我不能修改函数原型,但是另一个接受了一段参数的函数又需要把它接受到的参数传进已经公开的函数(当然,数据是没有问题的)因此就需要这样做
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' python里一个很高级的用法:apply apply接受两个参数:函数指针和元组(貌似还有其他更高级的用法) apply调用函数指针执行的函数时,把元组拆成参数列表传递进函数 ''' import web urls = ( '/app1', 'App1', '/app2', 'App2', '/app3/(\w*)','App3', '/app4/(\w*)/(\w*)','App4',#约定接口 ) web.config.debug = False app = web.application(urls, globals()) class PageBase: def __init__(self): self.funGET = self.GET self.GET = self.get def get(self,*args): wi = web.input() if hasattr(wi,"id"): self.s = wi.id else: self.s = "hello" #注意apply调用,对于该函数的解释见代码顶部 return apply(self.funGET,args) class App1(PageBase): def GET(self): return self.s class App2(PageBase): def GET(self): return self.s class App3(PageBase): def GET(self,id): return id class App4(PageBase): #接口已约定,我无权声明本函数支持可变参数 def GET(self,id1,id2): return id1+","+id2 if __name__ == "__main__": app.run()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述