县城做信息网站招商网站的建设意义

pingmian/2025/10/12 8:32:20/文章来源:
县城做信息网站,招商网站的建设意义,一起做网店网站入驻收费,前端培训班一 有参装饰器带有参数的函数装饰器为被装饰对象添加认证功能的装饰器#xff0c;实现的基本形式如下def deco(func):def wrapper(*args,**kwargs):编写基于文件的认证,认证通过则执行resfunc(*args,**kwargs),并返回resreturn wrapper如果想提供多种不同的认证方式以供选…一 有参装饰器带有参数的函数装饰器为被装饰对象添加认证功能的装饰器实现的基本形式如下def deco(func):def wrapper(*args,**kwargs):编写基于文件的认证,认证通过则执行resfunc(*args,**kwargs),并返回resreturn wrapper如果想提供多种不同的认证方式以供选择单从wrapper函数的实现角度改写如下def auth(func,db_type):def wrapper(*args, **kwargs):nameinput(your name: ).strip()pwdinput(your password: ).strip()if db_type file:print(基于文件的验证)if name egon and pwd 123:res func(*args, **kwargs)return reselse:print(user or password error)elif db_type mysql:print(基于mysql的验证)elif db_type ldap:print(基于ldap的验证)else:print(不支持该db_type)return wrapper函数wrapper需要一个driver参数而函数deco与wrapper的参数都有其特定的功能不能用来接受其他类别的参数可以在deco的外部再包一层函数auth用来专门接受额外的参数这样便保证了在auth函数内无论多少层都可以引用到def auth(db_type):def deco(func):def wrapper(*args, **kwargs):name input(your name: ).strip()pwd input(your password: ).strip()if db_type file:print(基于文件的验证)if name egon and pwd 123:res func(*args, **kwargs) # index(1,2)return reselse:print(user or password error)elif db_type mysql:print(基于mysql的验证)elif db_type ldap:print(基于ldap的验证)else:print(不支持该db_type)return wrapperreturn deco 想要保留原函数的文档和函数名属性需要修正装饰器def timer(func):def wrapper(*args,**kwargs):start_timetime.time()resfunc(*args,**kwargs)stop_timetime.time()print(run time is %s %(stop_time-start_time))return reswrapper.__doc__func.__doc__wrapper.__name__func.__name__return wrapper上述方式来实现保留原函数属性过于麻烦functools模块下提供一个装饰器wraps专门用来from functools import wrapsdef timer(func):wraps(func)def wrapper(*args,**kwargs):start_timetime.time()resfunc(*args,**kwargs)stop_timetime.time()print(run time is %s %(stop_time-start_time))return resreturn wrapper带有参数的类装饰器#参数1 : 给修饰的类添加成员属性和方法 #参数2 : 给类中的run方法变成属性class Kuozhan():ad 我是属性def char(self):print(我是方法)def __init__(self,num):self.num numdef __call__(self,cls):print(cls)if self.num 1:return self.kuozhan1(cls)elif self.num 2:return self.kuozhan2(cls)#参数1的情况:添加成员属性和方法def kuozhan1(self,cls):def newfunc():cls.ad Kuozhan.adcls.money Kuozhan.moneyreturn cls()return newfunc#参数2的情况:把方法变成属性def kuozhan2(self,cls):def newfunc():if run in cls.__dict__:cls.run cls.run()return cls()return newfunc # Kuozhan(1) class MyClass():def run():return 运动 obj MyClass() print(obj.ad) obj.money()# Kuozhan(2) class MyClass():def run():return 运动 obj MyClass() print(obj.run)property可以把方法变成属性 : 可以动态的控制属性的获取,设置,删除相关操作property 获取属性方法名.setter 设置属性方法名.deleter 删除属性class MyClass():def __init__(self,name):self.name namepropertydef username(self):return self.nameusername.setterdef username(self,val):self.name valpassusername.delsterdef username(self):def self.namepass obj MyClass(小红) 获取指的时候自动触发property 装饰器下的方法 res obj.username print(res)#设置值的时候自动触发username.setter装饰器下的方法 obj.username 小白 print(obj.username)class Myclass():def __init__(self,name):self.name name #获取数据def get_username(self):return self.name#设置数据def set_username(self,val):self.name val#删除数据def del_username(self):del self.name#参数的顺序:获取,设置,删除username property(get_username, set_username, del_username)obj MyClass(小白) #获取值的时候,执行get_username下的相关操作 print(obj.username) #设置值的时候,执行set_username下的相关操作 print(obj.username) #删除值的时候,执行del_username下的相关操作 del obj.username print(obj.username) 二 迭代器1、什么是迭代器 迭代器指的是迭代取值的工具迭代是一个重复的过程每次重复 都是基于上一次的结果而继续的单纯的重复并不是迭代2、为何要有迭代器 迭代器是用来迭代取值的工具而涉及到把多个值循环取出来的类型 有列表、字符串、元组、字典、集合、打开文件l[egon,liu,alex]i0while i len(l):print(l[i])i1上述迭代取值的方式只适用于有索引的数据类型列表、字符串、元组 为了解决基于索引迭代器取值的局限性 python必须提供一种能够不依赖于索引的取值方式这就是迭代器3、如何用迭代器1、可迭代的对象从语法形式上讲内置有__iter__方法的对象都是可迭代对象字符串、列表、元组、字典、集合、打开的文件都是可迭代对象2、调用可迭代对象下的__iter__方法会将其转换成迭代器对象3、可迭代对象与迭代器对象详解 可迭代对象可以转换成迭代器的对象内置有__iter__方法对象 可迭代对象.__iter__(): 得到迭代器对象 迭代器对象内置有__next__方法并且内置有__iter__方法的对象 迭代器对象.__next__得到迭代器的下一个值 迭代器对象.__iter__得到迭代器的本身4、可迭代对象字符串、列表、元组、字典、集合、文件对象 迭代器对象文件对象5、for循环的工作原理for循环可以称之为叫迭代器循环,in后可以跟任意可迭代对象1、d.__iter__()得到一个迭代器对象 2、迭代器对象.__next__()拿到一个返回值然后将该返回值赋值给k 3、循环往复步骤2直到抛出StopIteration异常for循环会捕捉异常然后结束循环6、迭代器优缺点总结6.1 优点I、为序列和非序列类型提供了一种统一的迭代取值方式。II、惰性计算迭代器对象表示的是一个数据流可以只在需要时才去调用next来计算出一个值就迭代器本身来说同一时刻在内存中只有一个值因而可以存放无限大的数据流而对于其他容器类型如列表需要把所有的元素都存放于内存中受内存大小的限制可以存放的值的个数是有限的。6.2 缺点I、除非取尽否则无法获取迭代器的长度II、只能取下一个值不能回到开始更像是‘一次性的’迭代器产生后的唯一目标就是重复执行next方法直到值取尽否则就会停留在某个位置等待下一次调用next若是要再次迭代同个对象你只能重新调用iter方法去创建一个新的迭代器对象如果有两个或者多个循环使用同一个迭代器必然只会有一个循环能取到值。三 生成器如何得到自定义的迭代器在函数内一旦存在yield关键字调用函数并不会执行函数体代码会返回一个生成器对象生成器即自定义的迭代器def func():print(第一次)yield 1print(第二次)yield 2print(第三次)yield 3print(第四次)触发函数体代码的运行然后遇到yield停下来将yield后的值 当做本次调用的结果返回 res1g.__next__() print(res1)

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

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

相关文章

建站行业解决方案百度云搜索引擎入口网盘搜索神器

BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符&…

做网站的那家公司好wordpress图片本地化

在短暂的沉寂,在与 Solana 手机 Saga 联合生态 Meme 币 Bonk 掀起一波 meme 浪潮,以及GPU 计算网路Render network 宣布将从公链Polygon迁往Solana 后,Solana 生态再次迎来爆发。随着 SOL 代币在 12 月暴涨,SOL 也在市值上超越了 …

网站建设预算表制作木匠手做网站

文章目录 1.6编程语言的选择1.6.1java和Scala1.6.2Python1.6.3SQL 1.6编程语言的选择 大数据编程一般会使用Java、Scala和python等编程语言,Flink目前也支持上述3种语言。 1.6.1java和Scala Java支持多线程,其生态圈中可用的第三方库众多。Java虚拟机…

苏州网站开发建设方案网站广告怎么做

一、购买服装 1.有关时尚的形容词 1)有许多可用于形容 fashion 和 clothes 的形容词。 cool 酷的 stylish 时髦的 in style 时髦 fashionable 时髦的,流行的 2)描述不喜欢的衣服 out of style 过时的 dre…

响应式网站建设源码html网站模版

Liquid Studio 提供了用于XML和JSON开发 的高级工具包以及Web 服务测试、数据映射和数据转换工具。 开发环境包含一整套用于设计 XML 和 JSON 数据结构和模式的工具。这些工具提供编辑、验证和高级转换功能。对于新手或专家来说,直观的界面和全面的功能将帮助您节省…

郑州英语网站建设费县住房和城乡建设局网站

1️⃣ LSTM介绍 标准的RNN存在梯度消失和梯度爆炸问题,无法捕捉长期依赖关系。那么如何理解这个长期依赖关系呢? 例如,有一个语言模型基于先前的词来预测下一个词,我们有一句话 “the clouds are in the sky”,基于&…

网站建设空间主机的选择网络营销试卷及答案

2.微服务的优缺点 优点 单一职责原则每个服务足够内聚,足够小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求;开发简单,开发效率提高,一个服务可能就是专一的只干一件事;微服务能够被小…

网站建设公司如何营销商务网站建设的应用

双端链表 双端栈 双端队列 从实用角度,感受不出双端队列的好处,但其可以充当栈和队列的角色. 参考资料:http://baike.baidu.com/view/1627726.htm Test static void Main() {var deque new Deque<int>();Console.WriteLine("Stack:");//stackdeque.AddFirst(1…

建设一中校园网站上海app网络推广公司

目录 AJAX 简介 任务目标 创建Ajax网站 创建服务器程序 编写爬虫程序 AJAX 简介 AJAX&#xff08;Asynchronous JavaScript And XML&#xff0c;异步 JavaScript 及 XML&#xff09; Asynchronous 一种创建交互式、快速动态网页应用的网页开发技术通过在后台与服务器进行…

牙科网站开发一家专做灯的网站招聘

本文介绍对象存储OSS的主要应用场景。 图片和音视频等应用的海量存储 OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。OSS支持流式写入和文件写入两种方式。 网页或者移动应用的静态和动态资源分离 利用海…

高端网站建设 炫酷建设部网站职责划定

前言 首先声明vue和react这两个框架都是很优秀的前端框架&#xff0c;使用的人群下载量上数量也是相当的庞大&#xff0c;这篇文章没有贬低或者攻击任何一个框架的意思&#xff0c;只在于根据答主的问题来对这两个框架做出对比&#xff0c;以方便大家更加清晰的了解到当下vue和…

企业网站建设方案.docwordpress搞笑

最近思考udp处理的一些细节&#xff0c;根据公开课&#xff0c;反复思考&#xff0c;终于有所理解&#xff0c;做整理备用。 0&#xff1a;简单汇总 1&#xff1a;udp是基于报文传输的&#xff0c;接收方收取数据时要一次性读完。 2&#xff1a;借助udp进行发包&#xff0c;…

网站排名站长之家网件路由器维修

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣144. 二叉树的前序遍历二、力扣145. 二叉树的后序遍历三、力扣94. 二叉树的中序遍历四、力扣144. 二叉树的前序遍历无、力扣145. 二叉树的后序遍历六、…

网站怎么做交易wordpress后台界面模板

文章目录 案例十六案例十七案例十八案例十九案例二十案例二十一案例二十二案例二十三案例二十四案例二十五案例二十六案例二十七案例二十八案例十六 #include<iostream> #include<cstring> //strcpy,strcmp #

邯郸网站建设效果好怎样经营好一个网站

LockSupport工具 当需要阻塞或唤醒一个线程的时候&#xff0c;都会使用LockSupport工具类来完成相应工作定义了一组公共静态方法&#xff0c;提供了最基本的线程阻塞和唤醒功能定义了一组以park开头的方法用来阻塞当前线程&#xff0c;unpark方法来唤醒一个被阻塞线程 void pa…

网站建设策划怎么沟通wordpress搬迁后多媒体库无法

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

网站制作留钱免费建站网站 百度一下

题干&#xff1a; 在一个社区里&#xff0c;每个人都有自己的小圈子&#xff0c;还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里&#xff0c;于是要请你统计一下&#xff0c;在一个给定社区中&#xff0c;到底有多少个互不相交的部落&#xff1f;并且检…

北京建设工程交易网站官网如何成为百度广告代理商

CSS动画02--卡片旋转3D 介绍代码HTMLCSS css动画02--旋转卡片3D 介绍 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360的旋转&#xff0c;以下是几张图片的介绍&#xff0c;上面是鄙人自己录得一个供大家参考的小视频&#x1f92d; 代码 HTML <!DOCTYPE html>…

typecho做网站百度如何建网站

Shell 变量的输入 Shell变量除了可以直接赋值或脚本传参外&#xff0c;还可以使用read命令从标准输入获得&#xff0c;read为bash内置命令&#xff0c;可以通过help read查看帮助【语法格式】read [参数] [变量名]【常用参数】-p prompt&#xff1a;设置提示信息-t timeout&…

柳江网站开发wordpress文章关键词描述

LITTLESUN本来是在学队列啊&#xff0c;在手动模拟队列的地方发现了结构体这个小怪&#xff0c;为了能赶紧打队列大BOSS就赶紧跑过来填下文件和结构体的坑鸭&#xff01; 转载于:https://www.cnblogs.com/LITTLESUNwl/p/10435877.html