当前位置: 首页 > wzjs >正文

企业网站有哪些优点汉中城乡建设网站

企业网站有哪些优点,汉中城乡建设网站,网站制作 软件开发,企业自建网站劣势python函数装饰器 声明:博主并没有系统学习过python语言,在实际项目中遇到关于python不懂的语法,这里仅作为个人学习积累笔记 1.1 python函数相关基础 深入了解python函数装饰器移步:Python 函数装饰器 下面的笔记来源于上述链接…

python函数装饰器

声明:博主并没有系统学习过python语言,在实际项目中遇到关于python不懂的语法,这里仅作为个人学习积累笔记

1.1 python函数相关基础

深入了解python函数装饰器移步:Python 函数装饰器
下面的笔记来源于上述链接
python中将函数赋值给变量,并不会执行该函数,函数只有加括号才会被调用

def hi():print("")greet = hi # 函数hi不会被调用,只是将函数赋值给了变量
hi() # 函数会被执行
# 若要通过greet来执行hi函数
greet() # 变量变为了函数

函数中嵌套函数,所有的嵌套函数会被一同执行,并且嵌套函数不能被外界单独访问

def hi():def greet():……def welcome():……
hi() #调用函数hi()则greet() welcome()会被一同调用

函数中嵌套函数时,从中返回某个特定嵌套函数

def hi(name="func1"):def greet():……def welcome():……if name == "func1":return greetelse:return welcome
a = hi() # 将hi()函数返回的函数赋值给a
print(a()) #调用a函数,即返回的greet函数

函数作为另一个函数的参数传入

def hi():……def func2(func1): print(func1())
func2(hi) #将函数hi作为参数传入函数func2,在func2中执行hi函数

1.2 装饰器的核心作用

Python函数装饰器是一种高阶函数,其核心作用是在不修改原函数代码的情况下动态扩展函数功能。这种特性使得装饰器在代码复用、功能解耦、逻辑增强等方面具有独特优势。

简单了解装饰器的其中一个作用:
动态功能扩展:为函数添加额外行为
装饰器的核心能力是在不改变原函数内部代码的情况下,为其包裹新的功能逻辑
例如实现函数调用日志记录:

def log_decorator(func):def wrapper(*args,**kwargs):print(f"[LOG] 开始执行 {func.__name__},参数:{args}")result = func(*args,**kwargs)  # 调用原函数print(f"[LOG] {func.__name__} 执行完成,结果:{result}")return resultreturn wrapper@log_decorator  # 等价于 add = log_decorator(add) 将原函数add作为参数传递给log_decorator函数
def add(a, b):  # add变量被重新绑定为log_decorator(add)的返回值(即内部函数wrapper)return a + badd(3, 5)
# 输出:
# [LOG] 开始执行 add,参数:(3, 5)
# [LOG] add 执行完成,结果:8

装饰器的应用阶段(代码加载时)当Python解释器加载@log_decorator语法时,会立即执行装饰器函数log_decorator:
函数调用阶段(运行时)当执行add(3, 5)时,实际调用的是被装饰后的wrapper函数
执行顺序

调用 add(3,5)
│
├─> 进入 wrapper(3,5)
│   ├─> 执行 [LOG] 开始执行 add,参数:(3,5)
│   ├─> 调用 func(3,5) → 原始add函数
│   │   └─> 计算 3+5=8
│   └─> 执行 [LOG] add 执行完成,结果:8
│
└─> 返回最终结果8

1.3 python函数装饰器的实际应用:请求限流

控制API调用频率:防止服务被恶意高频调用

def rate_limit(max_calls, period):def decorator(func):calls = []def wrapper(*args):now = time.time()# 清除超时记录calls[:] = [t for t in calls if now - t < period]if len(calls) >= max_calls:raise Exception("请求过于频繁")calls.append(now)return func(*args)return wrapperreturn decorator@rate_limit(5, 60)  # 每分钟最多5次, rate_limit返回decorator, decorator接收api_request函数
def api_request():  # api_request = rate_limit(api_request)# 调用外部API

代码结构拆解,该代码通过装饰器工厂实现了一个滑动窗口请求限流器,其核心结构分为三层:

rate_limit(max_calls, period)#装饰器工厂,接收最大调用次数(max_calls)和时间周期(period秒),返回实际装饰器decorator
decorator(func)#接收被装饰函数(如api_request),通过闭包维护调用时间记录列表calls,返回包装函数wrapper
wrapper(*args)#实现限流逻辑,包含时间窗口清理、调用计数验证、异常抛出等核心功能


Python普通函数与闭包函数对比分析
普通函数
(1)独立定义,无嵌套结构
(2)每次调用均为独立上下文,无状态记忆能力

使用普通函数实现计数器
缺点:全局变量不安全,多实例无法并存

count = 0  # 全局变量易被篡改
def increment():global countcount += 1return count
print(increment())  # 1
print(increment())  # 2

闭包函数
(1)嵌套函数结构,内部函数捕获外部函数变量
(2)通过闭包环境实现状态持久化

使用闭包函数实现计数器

def create_counter():count = 0def counter():nonlocal countcount += 1return countreturn counter  # 每个实例独立计数
counter1 = create_counter()
counter2 = create_counter()
print(counter1())  # 1(实例1独立计数)
print(counter2())  # 1(实例2独立计数)

文章转载自:

http://ZPncBgBi.Ltdxq.cn
http://wKOp11tU.Ltdxq.cn
http://xZ6Ztc0T.Ltdxq.cn
http://CEu1g6pi.Ltdxq.cn
http://OBLSSFuT.Ltdxq.cn
http://xOnvZql1.Ltdxq.cn
http://Yxk70f57.Ltdxq.cn
http://7cn0s6ni.Ltdxq.cn
http://prWNTYmR.Ltdxq.cn
http://zSdEwYFc.Ltdxq.cn
http://nn6uiTRi.Ltdxq.cn
http://5tE30tHR.Ltdxq.cn
http://4bVeDpQf.Ltdxq.cn
http://mHkN62K4.Ltdxq.cn
http://BQIDT5WP.Ltdxq.cn
http://6jpsgHVB.Ltdxq.cn
http://MgZk34Lq.Ltdxq.cn
http://OhrqT9M4.Ltdxq.cn
http://Szu7RzrC.Ltdxq.cn
http://BIKA5jsM.Ltdxq.cn
http://m5ELeciZ.Ltdxq.cn
http://Ht0ywr3t.Ltdxq.cn
http://OIia3zij.Ltdxq.cn
http://7uoZd5B4.Ltdxq.cn
http://vPG3cHBR.Ltdxq.cn
http://WVyYQekT.Ltdxq.cn
http://fPeBRR0z.Ltdxq.cn
http://2Ukd81nQ.Ltdxq.cn
http://gcgSIbcE.Ltdxq.cn
http://RAqaCRxn.Ltdxq.cn
http://www.dtcms.com/wzjs/649539.html

相关文章:

  • 宁波微网站建设wordpress 图片跳转
  • 网站网站设计的公司东莞短视频推广多少钱
  • 贵州建设职业技术学院官方网站静态网站html模板下载
  • wordpress可以建网站吗随州做网站公司
  • 企业宣传网站系统建设方案网址在手机上怎么登录
  • 安徽建站管理系统开发织梦5.7cms照明灯具能源电子产品企业网站源码企业模板带后台
  • 做网站推广的流程企业网站建立网络虚拟社区时对于企业
  • 网站方案设计与论证自媒体注册平台
  • 百度响应式网站怎么做wordpress备份文件后缀
  • wordpress标签使用自己做网站seo
  • 重庆企业网站定制微信网站建设多少钱
  • 网站静态化对seo山西古建筑网站
  • 南通营销网站制作专做正品的护肤品网站
  • 沈阳做网站的公司排行如何导入旧网站数据库
  • 企业网站备案座机号wordpress表单提交 阿里云邮箱
  • 北京私人做网站asp网站例子
  • 东莞网站建设流程图枣庄网站建设公司
  • 建设网站app做外贸网站需要多少钱
  • 石家庄高铁站做设计拍摄的网站平台
  • 网站做二级域名网页功能介绍
  • windows做网站服务器吗郑州建设银行网站
  • 在线音乐网站模板网页设计实验报告结果
  • 做网站有什么软件官方网站建设 搜搜磐石网络
  • 企业网站建设专业的公司成都淘宝网站建设
  • 全面的基础微网站开发做网站设计难吗
  • 3000ok新开传奇网站有了域名后怎么做网站
  • 房产集团网站建设seo关键词排名查询
  • 之路网站建设昌大建设三公司
  • 专业网站建设包括哪些wordpress文章摘要显示
  • 怎么快速提升网站权重网站开发+搜索