美发网站怎么做sae 网站备案信息

news/2025/9/23 21:00:09/文章来源:
美发网站怎么做,sae 网站备案信息,徐州赶集网招聘信息,精准网络推广目录 一、基本原理二、核心作用三、Demo示例示例1#xff1a;基本装饰器示例2#xff1a;带参数的装饰器示例3#xff1a;多个装饰器 四、正确使用装饰器五、pyparamvalidate 装饰器项目 装饰器#xff08;Decorators#xff09;是 Python 中一种强大而灵活的功能#xf… 目录 一、基本原理二、核心作用三、Demo示例示例1基本装饰器示例2带参数的装饰器示例3多个装饰器 四、正确使用装饰器五、pyparamvalidate 装饰器项目 装饰器Decorators是 Python 中一种强大而灵活的功能它允许你在不修改原始函数代码的情况下动态地修改或增强函数的行为。 一、基本原理 装饰器本质上是一个函数它接受一个函数作为输入并返回一个新的函数。在这个过程中可以在新函数中添加额外的功能或者修改原始函数的行为。 二、核心作用 代码重用 装饰器可以用于包装通用的功能使其能够被多个函数共享。代码增强 通过装饰器在不改变原始函数结构的情况下为其增加额外的功能。面向切面编程 装饰器允许在不修改函数代码的情况下将横切关注点如日志、性能监控从业务逻辑中分离出来。 三、Demo示例 示例1基本装饰器 def simple_decorator(func):def wrapper():print(Something is happening before the function is called.)func()print(Something is happening after the function is called.)return wrappersimple_decorator def say_hello():print(Hello!)say_hello()输出结果 Something is happening before the function is called. Hello! Something is happening after the function is called.decorator 语法糖是 Python 装饰器的简便写法这段代码等效于say_hello simple_decorator(say_hello)。 使用 decorator 语法糖时解释器会自动将下方的函数传递给装饰器并将返回的结果重新赋值给原函数名。这样可以在不改变原函数调用方式的情况下应用装饰器。 示例2带参数的装饰器 def decorator_with_args(arg):def actual_decorator(func):def wrapper(*args, **kwargs):print(fDecorator argument: {arg})for i in range(arg):func(*args, **kwargs)return wrapperreturn actual_decoratordecorator_with_args(3) def greet(name):print(fHello, {name}!)greet(Alice)输出结果 Decorator argument: 3 Hello, Alice! Hello, Alice! Hello, Alice!示例3多个装饰器 def decorator1(func):def wrapper1():print(Decorator 1)func()return wrapper1def decorator2(func):def wrapper2():print(Decorator 2)func()return wrapper2decorator1 decorator2 def my_function():print(Original function)my_function()输出结果 Decorator 1 Decorator 2 Original function执行顺序说明 decorator2 在 my_function 上应用了 decorator2 装饰器。实际上这相当于执行了 my_function decorator2(my_function)将 my_function 替换为 decorator2 返回的新函数 wrapper2。然后decorator1 在已经被 decorator2 装饰过的 my_function 上再次应用了 decorator1 装饰器。这相当于执行了 my_function decorator1(decorator2(my_function))将 decorator2 返回的函数 wrapper2替换为decorator1返回的新函数 wrapper1。当调用 my_function() 时实际上是调用了经过两个装饰器包装后的新函数。执行顺序是先执行最外层的 decorator1再执行内层的 decorator2最后执行原始函数。 执行 decorator1 即执行 wrapper1()Decorator 1被打印出来然后执行 func()此时 func 为 wrapper2func() 相当于执行 wrapper2(), “Decorator 2” 被打印出来然后执行 func()此时 func为 my_functionfunc() 相当于执行 my_function()Original function被打印出来结束。 四、正确使用装饰器 下面是一段问题代码 def log_decorator(func):def wrapper(*args, **kwargs):print(fCalling {func.__name__} with arguments {args} and keyword arguments {kwargs})result func(*args, **kwargs)print(f{func.__name__} returned: {result})return resultreturn wrapperlog_decorator def add(a, b):return a blog_decorator def multiply(x, y):return x * yadd_result add(2, 3) print(fadd function name: {add.__name__}) # 输出结果add function name: wrapperprint(f)multiply_result multiply(4, 5) print(fmultiply function name: {multiply.__name__}) # 输出结果multiply function name: wrapper 输出结果 Calling add with arguments (2, 3) and keyword arguments {} add returned: 5 add function name: wrapperCalling multiply with arguments (4, 5) and keyword arguments {} multiply returned: 20 multiply function name: wrapper从输出结果中可以看出add.__name__ 和 multiply.__name__ 均没有正确的显示函数名称。 为了解决这个问题python 提供了内置的装饰器 functools.wraps 它的作用是在自定义装饰器中复制原始函数的元信息到装饰器返回的新函数中从而保留原函数的属性包括函数名称、文档字符串、参数信息等。 下面是正确使用装饰器的代码 def log_decorator(func):functools.wraps(func)def wrapper(*args, **kwargs):print(fCalling {func.__name__} with arguments {args} and keyword arguments {kwargs})result func(*args, **kwargs)print(f{func.__name__} returned: {result})return resultreturn wrapperlog_decorator def add(a, b):return a blog_decorator def multiply(x, y):return x * yadd_result add(2, 3) print(fadd function name: {add.__name__}) # 输出结果add function name: addprint(f)multiply_result multiply(4, 5) print(fmultiply function name: {multiply.__name__}) # 输出结果multiply function name: multiply 输出结果 Calling add with arguments (2, 3) and keyword arguments {} add returned: 5 add function name: addCalling multiply with arguments (4, 5) and keyword arguments {} multiply returned: 20 multiply function name: multiply五、pyparamvalidate 装饰器项目 pyparamvalidate 是一个简单易用的函数参数验证器。它提供了各种内置验证器支持自定义验证规则有助于 python 开发人员轻松进行函数参数验证提高代码的健壮性和可维护性。 项目地址github 。如果该项目对您有帮助麻烦帮忙在 github 上点个小星星。 如果您想进一步深入了解装饰器的使用请参考实现过程pyparamvalidate 参数校验器从编码到发布全过程 。 该项目最终的实现效果是一个ParameterValidator装饰器类如下 ParameterValidator(description).is_string().is_not_empty() ParameterValidator(gender, Invalid).is_allowed_value([male, female], Gender must be either male or female) ParameterValidator(age, param_rule_desAge must be a positive number).is_int().is_positive() ParameterValidator(name).is_string(exception_msgName must be a string).is_not_empty() def example_function(name, age, gendermale, **kwargs):description kwargs.get(description)return name, age, gender, description

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈网站建设开发wordpress 分表存储

请看vcr:https://transformers.run/back/transformer/

网站建设的博客wordpress会员介绍页

有时候,当模型损失函数值预期的效果时,就可以结束训练了,一方面节约时间,另一方面防止过拟合 此时,设置损失函数值小于0.4,训练停止 from tensorflow import keras import tensorflow as tf import matplo…

河南手机网站设计建设银行信用卡官网站

案例描述: 电脑主要组成部件为 CPU(用于计算),显卡(用于显示),内存条(用于存储) 将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例…

肇庆网站制作费用怎么找个人搭建网站

PPT插件获取:链接:https://pan.baidu.com/s/1BOmPioUKeY2TdC-1V-o3Vw 提取码:tdji 一、ppt插件介绍 PPT插件是一种可以帮助用户在Microsoft PowerPoint软件中添加各种额外功能和效果的应用程序。使用PPT插件可以让用户更加轻松地制作出专业、…

站建设培训学校坡头网站建设公司

文章目录 📚嵌入方式📚图表加载显示📚100%嵌入及滑动条问题📚加载动画保留 前情提要: 计划用iframe把画好的home1.html(echarts各种图表组成的html数据大屏)嵌入整合到index.html(搭…

做网站的大公司怎样学做网站

php array_push函数用于向数组尾部插入一个或多个元素,其语法是array_push(array,value1,value2...),参数array必需,指规定一个数组;value1必需,指规定要添加的值。php array_push函数怎么用?定义和用法arr…

株洲品牌网站建设成都网站建设开

一、常用参数 1.1、-Xms 功能:初始内存大小,默认为物理内存的1/64,等价于 -XX:InitialHeapSize 1.2、-Xmx 功能:最大分配内存,默认为物理内存的1/4,等价于 -XX:MaxHeapSize 1.3、-Xss 功能:设置…

建站推广网站谷歌优化的最佳方案

目录 ReentrantReadWriteLock详解1、ReentrantReadWriteLock简介2、ReentrantReadWriteLock类继承结构和类属性3、ReentrantReadWriteLock的读写锁原理分析4、ReentrantReadWriteLock.WriteLock类的核心方法详解非公平写锁的获取非公平写锁的释放公平写锁的获取公平写锁的释放 …

网站建设桂林长沙做网站比较好的公司

Couchdb 命令执行漏洞复现 (CVE-2017-12636) 1、下载couchdb.py 2、修改目标和反弹地址 3、Python3调用执行即可 couchdb.py文件下载地址: https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py ‍ 在VULFocus上开启环境 …

做推广送网站免费建站做一网站要学些什么

Xshell 是一个强大的终端仿真器,它支持多种Linux发行版的远程连接。Xshell提供了一系列的快捷键,以提高用户的操作效率。以下是一些Xshell中常用的快捷键: 新建会话窗口: Ctrl N 或 Ctrl Shift N 在现有会话中打开新标签&…

网站开发合作协议书论述站点的几种推广方式

哈工大人工智能暑期课实践项目建议 这个博客介绍了暑期课实践作业的建议。 时间:7/10 - 7/22. 一周上课, 一周项目实践。 要求:项目实践的过程请用公开的博客记录。 项目的源代码请放到 github 中。 每4 ~ 5 人一个小组,从下…

google 网站收录优秀网站建设模板

1.生成key edit->preferences->license Keys->generate 2.新建product license文件 3.新建Zend Guard项目文件 需要注意新建项目的第二项需要英文路径 4.在项目上按右键 选择configure 初始界面是 如果要用做授权,点击security按键 然后设置license文件等 附上php.in…

以下哪些不属于h5制作软件成都网站排名优化

文章目录1. 题目2. 解题1. 题目 一个班级里有 n 个学生,编号为 0 到 n - 1 。 每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这…

黑链 对网站的影响济南做网站软件

🔍目的 为另一个对象提供代理或占位符以控制对其的访问。 🔍解释 真实世界例子 想象有一个塔,当地的巫师去那里学习他们的法术。象牙塔只能够通过代理来进入以此来保证只有首先3个巫师才能进入。这里的代理就代表的塔的功能并添加访问控制。 …

青海省住房和城乡建设局网站首页谁会在西安做网站的吗

Google Analytics(谷歌分析)是最受欢迎的网站分析工具之一。它为网站管理员提供了深入了解其网站访问者的机会,并通过数据分析提供有关网站流量、用户行为和转化率的洞察。 1、跟踪代码(Tracking Code) 跟踪代码是嵌入…

2025年9月23日 - 20243867孙堃2405

今天就两门课,工程实训劳动课,学会了如何安全用电,以及组装电路,还有一节英语课,丰富了词汇与语法,新背会了20个单词,晚上没事去打了打篮球,总之这一天很充实

网站建设与管理视频教程wordpress跳转后端IP

关于昨天 Solv 携手 zCloak 与新加坡和加纳两个央行合作的 Project DESFT,很多朋友都发来恭喜和祝福,并希望了解详情。这个事我们秘密努力了半年多,终于有一个阶段性的成果。这里我转载中文版官宣新闻稿,欢迎大家关注。等我忙过这…

电子商务网站设计实践报告速成网站

CentOS6中关于网络配置的命令有很多,本文将介绍几个平时最长用的几个命令,以及网卡IP地址的配置和简单路由配置。1、经常使用的查看IP地址命令为 ifconfig,不跟参数的情况下默认查看所有已启用的网卡信息,如下图所示:如…

余姚网站seo运营广州智迅网络做网站

在 Java 中:为什么不能在 static 环境中访问非 static 变量? 1、静态(static)变量2、非静态(非static)变量3、为什么不能访问?4、如何访问?5、总结 💖The Begin&#x1f…