Python档案袋(函数与函数装饰器 )
特点:代码复用、可扩展、保持一致性
函数简单的实现,返回值的不同:
#定义方法
def funx1():
pass def funx2():
return 0 def funx3():
return 11,12,[33,88],{"xx":99} def funx411():
return ("------funx411111111------") def funx4():
return funx411 #调用方法1
#返回:None
print(funx1()) #调用方法2
#返回:0
print(funx2()) #调用方法3
#返回元组:(11, 12, [33, 88], {'xx': 99})
print(funx3()) #调用方法4
#返回函数地址,加括号就可运行
funx40=funx4();
#输出:------funx411111111------
print(funx40())
函数简单的实现,形参的不同:
def funx1(x,y):
print("x=%s,y=%s"%(x,y)) #默认参数
def funx2(x2,y2=10):
print("x=%s,y=%s" % (x2, y2)) # *args可接收多个不固定位置参数,转换为元组
def funx3(x1,y1,*args):
print(x1) #输出11
print(y1) #输出13
print(len(args)) #输出个数,2
print(args) #输出全部值,以元组方式,(19, 18) # *kwargs可接收多个不固定关键字参数,转换为字典
def funx4(**kwargs):
print(kwargs) #与形参一一对应
funx1(11,22)
#与形参位置无关
funx1(y=88,x=99)
#默认值可以不传递值
funx2(110)
funx3(11,13,19,18)
funx4(user="dong",name="dongxiaodong",age=100)
递归函数:
#递归函数
def funx1(intx): intx-=1
print(intx) if intx >0:
funx1(intx) #再次调用自己 funx1(10)
高阶函数:
函数作为参数进行传递
def addx(x,y,funx):
return funx(x)+funx(y) res=addx(-5,1,abs) #abs的绝对值运算函数
print(res) #输出:6
函数装饰器:
本质是函数,用来装饰其他函数(给其他函数添加功能)
注意:
1、不可修改被装饰函数源代码
2、不可更改被装饰函数的调用方式
import time #装饰器
def decofun(func): #decofun(funx1)
def deco(*args,**kwargs):#可支持多个位置参数和关键字参数传递
starttime=time.time()#获的开始取时间戳
func(*args,**kwargs) #运行函数
stoptime=time.time()
print("函数运算时间为:%f"%(stoptime-starttime))
return deco #返回函数地址 @decofun #相当于:funx1=decofun(funx1)
def funx1():
time.sleep(1)
print("----funx1----") @decofun #相当于:funx2=decofun(funx2)
def funx2(x,y):
print(x,"---funx2---",y) #funx1=decofun(funx1)
funx1() #调用函数
funx2(y=12,x=16)#调用函数
Python档案袋(函数与函数装饰器 )的更多相关文章
- Python函数篇:装饰器
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...
- python基础编程: 函数示例、装饰器、模块、内置函数
目录: 函数示例 装饰器 模块 内置函数 一.函数示例: 1.为什么使用函数之模块化程序设计: 不使用模块程序设计的缺点: 1.体系结构不清晰,可主读性差: 2.可扩展性差: 3.程序冗长: 2.定义 ...
- Python中的多个装饰器装饰一个函数
def wrapper1(func1): def inner1(): print('w1 ,before') func1() print('w1 after') return inner1 def w ...
- python基础之函数当中的装饰器
在实际工作当中存在一个开放封闭原则 1.对扩展是开放的 为什么要对扩展开放呢? 我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代码扩展.添加新 ...
- 第四天 内置函数2 随机码 装饰器 迭代器、生成器 递归 冒泡算法 JSON
关于函数的return li = [11,22,33,44] def f1(arg): arg.append(55) li = f1(li) print(li) 因为li = f1(li) 实际赋值的 ...
- 函数基础(三) 装饰器\闭包 day 12
目录 昨日回顾 可变长参数 * ** 函数对象 函数嵌套 名称空间和作用域 今日内容 闭包函数 装饰器 语法糖 装饰器模板 迭代器 昨日回顾 可变长参数 * *形参:接受多余的位置实参 *实参(可迭代 ...
- Django视图函数函数之视图装饰器
FBV模式装饰器: 普通函数的装饰器(语法糖@) views.py from django.shortcuts import render def wrapper(f): def inner(*arg ...
- Python 学习笔记9(装饰器,decorator)
31 装饰器 装饰器可以对一个函数.方法或者类进行加工,是一种高级的python语法. 装饰函数 接收一个可调用对象作为输入参数,并返回一个新的可调用对象. 把函数传递给装饰器,然后增加新的功能,返回 ...
- Python成长之路_装饰器
一.初入装饰器 1.首先呢我们有这么一段代码,这段代码假设是N个业务部门的函数 def f1(aaa): print('我是F1业务') if aaa == 'f1': return 'ok' def ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
随机推荐
- 用html给div加类似a标签的超链接(转)
今天项目中遇到用html给div加类似a标签的超链接,回想半天,万幸还是想出来了. 分享一下啊: 1.通过window.open函数 <div onclick="window.open ...
- GLSL ES 中的存储变量修饰符(const/attribute/uniform/varying/in/centroid in/out/centroid out)
GLSL ES 3.00 中支持的存储变量修饰符 变量名称 作用 示例 const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0); ...
- Codeforces 581F Zublicanes and Mumocrates 树形dp
Zublicanes and Mumocrates dp[ i ][ j ][ k ] 表示 以 i 为根的子树, 占领 i 的 是 j 并且第一个人占了 i 子树的 k 个叶子节点的最小值. 然后随 ...
- Mac下brew安装JDK的教程
---恢复内容开始--- 安装命令: brew cask install java 默认应该会下载jdk7 也可以指定下载版本brew cask install java6 注意: brew inst ...
- Xcode 10.1 运行老版本工程遇到问题解决记录
近来接手公司一个历史遗留项目进行修改.上线工作,想想我都近三年没敲过iOS代码了也是慌.. 项目大致情况: 18年年初应上线项目,各种情况下一直搁置,到18年底了要重启上线,原来开发人员离职了都,年底 ...
- (二)stm32f103~~GPIO基本操作二(按键)
GPIO基本配置之按键输入操作(通过按键控制小灯的翻转) KEY0 对用端口PE4,KEY1 对用端口PE3,这两个按键是一段接地,另一端接单片机.KEYWKUP 对用端口PA0,这个按键是一段接高电 ...
- BZOJ2143: 飞飞侠
2143: 飞飞侠 题意: 给出两个 n ∗ m 的矩阵 A,B,以及 3 个人的坐标 在 (i, j) 支付 Ai,j 的费用可以弹射到曼哈顿距离不超过 Bi,j 的位置 问三个人汇合所需要的最小总 ...
- BFS —— 信息学一本通(1451:棋盘游戏)
题目描述 在一个4*4的棋盘上有8个黑棋和8个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的.移动棋子的规则是交换相邻两个棋子.现在给出一个初始棋盘和一个最终棋盘,要求你找出一个最短的移动序 ...
- 定位方式(d16)
一,回顾, ①selector和xpath的区别,selector是解析的html,xpth是解析的xml,所以使用selector比使用xpath快, ②定位元素的单数和复数,当使用单数定位不到元素 ...
- 配置Https 和 HSTS
1. 视频 https://www.bilibili.com/video/av33344382/?p=2 using System; using Microsoft.AspNetCore.Builde ...