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

网站开发后台编辑系统产品推广软文

网站开发后台编辑系统,产品推广软文,“设计网站”,阿旗建设局举报网站Python函数学习 1.函数定义 在函数定义阶段只检查函数的语法问题 2.实参形参 ​​​​总结#xff1a; #xff08;1#xff09;位置参数就是经常用的按照位置顺序给出实参的值#xff1b; #xff08;2#xff09;关键字实参形式#xff1a;key123#xff1b;放在…Python函数学习 1.函数定义 在函数定义阶段只检查函数的语法问题 2.实参形参 ​​​​总结 1位置参数就是经常用的按照位置顺序给出实参的值 2关键字实参形式key123放在所有位置参数后 3默认形参是直接在函数括号中指定某数的值若传实参时给出具体值则按照具体值来若没给则按默认值处理 ​**4**形参中的*会将溢出的位置实参全部接收然后存储元组的形式然后把元组赋值给后的参数。需要注意的是*后的参数名约定俗成为args。表示为 def func(*args) **5**形参中的**会将溢出的关键字实参*全部接收然后存储字典的形式然后把字典赋值给后的参数。需要注意的是**后的参数名约定俗成为kwargs。表示为def func(**kwargs) 3.函数是对象可以被当做数据进行处理 4.global和nonlocal关键字 第一两者的功能不同。global关键字修饰变量后标识该变量是全局变量对该变量进行修改就是修改全局变量而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量如果上一级函数中不存在该局部变量nonlocal位置会发生错误最上层的函数使用nonlocal修饰变量必定会报错。 第二两者使用的范围不同。global关键字可以用在任何地方包括最上层函数中和嵌套函数中即使之前未定义该变量global修饰后也可以直接使用而nonlocal关键字只能用于嵌套函数中并且外层函数中定义了相应的局部变量否则会发生错误见第一 【注这两段引用知乎作者的内容侵权删】 global x nonlocal x1在局部想要修改全局的可变类型不需要任何声明可以直接修改。 2在局部如果想要修改全局的不可变类型需要借助global声明声明为全局的变量即可直接修改。 函数进阶 1.闭包函数和装饰器 装饰器就是闭包的一种应用下面的代码是装饰器模板 def deco(func):def wrapper(*args,**kwargs):res func(*args,**kwargs)return resreturn wrapper装饰器在大段程序中的使用方法装饰器语法糖——即让装饰器用起来更方便简洁的东西直接在要使用装饰器的函数上方装饰器例 def deco(func):def wrapper(*args, **kwargs):res func(*args, **kwargs)return resreturn wrapperdeco # home deco(home) def home(name, pwd, tag1):print(fwelcome {name} to home page)return name应用场景 如果我们已经上线了一个项目我们需要修改某一个方法但是我们不想修改方法的使用方法这个时候可以使用装饰器。因为软件的维护应该遵循开放封闭原则即软件一旦上线运行后软件的维护对修改源代码是封闭的对扩展功能指的是开放的 应用实例 import timecurrent_user {username: None}def login(func):# func 最原始的indexdef wrapper(*args, **kwargs):if current_user[username]:res func(*args, **kwargs)return resuser input(username: ).strip()pwd input(password: ).strip()engine fileif engine file:print(base of file)if user nick and pwd 123:print(login successful)current_uesr[usre] userres func(*args, **kwargs)return reselse:print(user or password error)elif engine mysql:print(base of mysql)elif engine mongodb:print(base of mongodb)else:print(default)return wrapperlogin #homelogin(home)这样做的好处的可以减少登录的次数只需每次判断是否已登录而不需要重复写登录的代码。即给home()和index()都增加了登录的功能 def home(name):print(fwelcome {name} to home page)time.sleep(1)login #indexlogin(index) def index():print(welcome to index)time.sleep(1)res index()2.迭代器和生成器 1实际上生成器是迭代器的一种只是生成器是自己写的迭代器 迭代器 几个概念 **可迭代的对象**Python内置str、list、tuple、dict、set、file都是可迭代对象 Python中内置有__iter__方法的都叫可迭代的对象 2迭代器定义 一个类如果实现了「迭代器协议」就可以称之为「迭代器」。 什么是「迭代器协议」呢 在 Python 中实现迭代器协议就是实现以下 2 个方法 __iter__这个方法返回对象本身即 self __next__这个方法每次返回迭代的值在没有可迭代元素时抛出 StopIteration 异常 #迭代器应用实例 s hello iter_s s.__iter__()while True:try:print(iter_s.__next__())except StopIteration:break #输出结果为: #h #e #l #l #o (3)for循环又称作迭代器循环in的后面必须是可迭代对象 lis [1, 2, 3] for i in lis:print(i)生成器 1yield关键字函数中但凡出现yield关键字再调用函数就不会继续执行函数体代码而是会返回一个值 2yield和return的区别 yield 接收一个值并继续执行后续代码未指定默认接收None而return直接接收一个值并直接结束函数不再执行其后的代码 def func():print(from func 1)yield aprint(from func 2)yield bg func() print(Fg.__iter__ g: {g.__iter__() g}) #迭代器执行_iter_的结果是它本身这也证明了生成器就是迭代器res1 g.__next__() #from func 1 print(fres1: {res1}) #ares2 next(g) #from func 2 print(fres2: {res2}) #bfor i in g:print(i) #for循环的结果(a,b没有拿变量来接收打印不出来) #from func 1 #a #from func 2 #b再来看一个直观的生成器例子 def i_wanna_return():yield ayield byield cfor i in i_wanna_return():print(i) #结果 #a #b #c
http://www.hkea.cn/news/14538102/

相关文章:

  • 网站开发计入什么费用wordpress个人博客模板下载
  • 做像淘宝这样的购物网站要多少钱中国互联网协会理事长级别
  • 做购物网站 推广wordpress结合帝国cms
  • 广州网站建设建航专业推广网站
  • 阴阳师网站怎么做公司免费推广网站
  • 如何让自己做的网站可以播放歌曲京能集团在2023年中国企业500强
  • 做毕业设计网站需要的工具app开发一般收费
  • 怎么做企业网站运营国药控股北京有限公司
  • 社交网站图片展示工商个体户年检网上申报
  • asp网站自动识别手机东莞网页制作设计培训
  • 网站seo优化方案项目策划书广东省网页制作
  • 怎么做企业网站排名晋江做网站模板
  • 东莞一站式网站建设创口贴设计网站官网
  • 手机网站开发在pc端哪个平台电商运营比较好
  • mip网站有什么好处游戏代理是做什么的
  • 网站建设管理工作的总结网站建设搜索键如何设置链接
  • 潢川网站建设公司深圳住建局官方网电话
  • 北京网站报价揭阳商城网站建设
  • python做的网站漏洞wordpress+widget+开发
  • 最新传奇手游开服网站关于室内设计的网站有哪些
  • 怎样经营好一个网站个人视频网站应该怎么做
  • 中国网站备案一流的常州做网站
  • 郑州作网站方维o2o 2.9蓝色团购网站程序源码模板
  • 文学类网站怎么做更新不了wordpress
  • 在自己的网站做百度搜索框免费网站建设垂询186 6159 6345
  • 上海网站开发设计公司嘉兴市做外贸网站的
  • 信誉好的专业网站建设一般做网站图是多大的像素
  • wordpress看文网站企业网站建设中的常见问题
  • vps架设好网站访问不了怎么做网站反向链接
  • 网站建设电话话术哪个网站有建设需要等文件