day5学python 基础+装饰器内容
基础+装饰器内容
递归特性
# 1.必须有一个明确的结束条件
# 2.每次进入更深一层递归时,问题规模相比上次递归应有所减少
# 3.递归效率不高
def run(n):
print(n)
if int(n/2)>0:
return run(n / 2)
print("-->",n)
run(10)
=============================================================
局部变量与全局变量知识
1.全局变量中 数字/字符串不能在函数中修改 列表和字典可以修改
names=["xiao","mibg","ming"]
def change():
names[0]="cf"
print(names)
change()
print(names)
==============================================================
函数即”变量“! (函数名-代表函数地址 || 函数名()-代表调用函数)
高阶函数
1 把一个函数名当作实参传给另一个函数(在不修改被装饰函数源代码的情况下为其添加功能)
2 返回值中包含函数名(不修改函数的调用方式)
==============================================================
装饰器
高级函数+嵌套函数==>装饰器 #嵌套函数-函数套着函数 # 定义:本质是函数,(装饰其他函数)为其他函数添加附加功能
# 原则: 1.不能修改被装饰的函数的源代码
# 2.不能修改被装饰的函数的调用方式
import time user,word="cf",""
def auth(auth_type):
print("auth_type",auth_type)
def out_wrapper(func):
def wrapper(*args,**kwargs):
if(auth_type=="local"):
usename=input("usename:").strip()
psword= input("psword:").strip()
if(user==usename and psword==word):
print("\033[32;1m HI boy \033[0m")
func(*args,**kwargs)
else:
exit("failed")
elif(auth_type=="ldap"):
func()
return wrapper
return out_wrapper
def index():
print("index") @auth(auth_type="local") #home=auth(local)==>wrapper()
def home():
print("home")
@auth(auth_type="ldap")
def bbs():
print("bbs") index()
home()
bbs()
day5学python 基础+装饰器内容的更多相关文章
- python基础——装饰器
python基础——装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数. >>> def now(): ... print('2015-3-25 ...
- python基础—装饰器
python基础-装饰器 定义:一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身. def foo(): return 123 a=foo(); b=foo; print(a ...
- python 基础——装饰器
python 的装饰器,其实用到了以下几个语言特点: 1. 一切皆对象 2. 函数可以嵌套定义 3. 闭包,可以延长变量作用域 4. *args 和 **kwargs 可变参数 第1点,一切皆对象,包 ...
- Python 基础 装饰器
今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...
- python基础-装饰器,生成器和迭代器
学习内容 1.装饰器 2.生成器 3.迭代器 4.软件目录结构规范 一:装饰器(decorator) 1.装饰器定义:本质就是函数,用来装饰其他函数,即为其他函数添加附加功能. 2.装饰器原则:1)不 ...
- Python自动化 【第四篇】:Python基础-装饰器 生成器 迭代器 Json & pickle
目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结构规范 1. Python装饰器 装饰器:本质是函数,(功能是装饰其它函数)就是为其他函数添加附加功能 原则: ...
- python基础 (装饰器,内置函数)
https://docs.python.org/zh-cn/3.7/library/functions.html 1.闭包回顾 在学习装饰器之前,可以先复习一下什么是闭包? 在嵌套函数内部的函数可以使 ...
- python基础===装饰器@property 的扩展
以下来自Python 3.6.0 Document: class property(fget=None, fset=None, fdel=None, doc=None) Return a proper ...
- <Python基础>装饰器的基本原理
1.装饰器 所谓装饰器一般是对已经使用(上线)的函数增加功能. 但是因为一般的大公司的严格按照开放封闭原则(对扩展是开放的,对修改是封闭的),不会让你修改原本的函数. 装饰器就是在不改变原本的函数且不 ...
随机推荐
- 不同浏览器对于html5 audio标签和音频格式的兼容性
音频格式 Chrome Firefox IE9 Opera Safari OGG 支持 支持 支持 支持 不支持 MP3 支持 不支持 支持 不支持 支持 WAV 不支持 支持 不支持 支持 不支持 ...
- Py修行路 python基础 (二十四)socket编程
socket编程 一.客户端/服务端架构 客户端/服务端架构 即C/S架构,包括:1.硬件C/S架构,2.软件C/S架构. 互联网中处处都是C/S架构,学习socket 就是为了完成C/S架构的开发. ...
- java - 判断 字符串是否为空
java - 判断 字符串是否为空 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1:if(s == null || s.equals(""));方法二: 比较字符 ...
- STM32使用无源蜂鸣器演奏歌曲
上一次使用了有源蜂鸣器,只能发出固定的”滴滴“声,当然不能满足于此呀.使用无源蜂鸣器,只要输出不同频率的PWM波,即可发出不同的音符. 不同的音符组合起来就是一个曲子了. 改变PWM的音调,可以输出D ...
- pl/sql Command Window
由于工作需要,最近需要执行sql脚本,之前一直在用执行按钮操作,但最近公司制定了一套标准,其中就有执行sql脚本规范: 以前执行存存储过程: 现在修改存储过程如下: 第一步,打开对应窗口: 第二步,输 ...
- ubuntu安装vsftpd
使用以下命令安装vsftpd: apt-get install vsftpd 安装完成后,文件服务器已经开启了. 然后就可以连接,可以使用xftp等工具,在上传和下载的时候要注意权限,不然会失败.
- S3C6410移植u-boot
1.首先下载u-boot(ftp://ftp.denx.de/pub/u-boot) wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2 2 ...
- Idea的基本介绍
Idea的基本介绍 Idea一般是作为一个Java和Scala的开发工具来使用的,它的使用方法和Eclipse有一些不同,这里记录以下一些基本点. 1.创建项目 创建一个新项目的时候,用户必须选择一个 ...
- 游戏引擎架构Note1
[游戏引擎架构] 1.第14章介绍的对游戏性相关系统的设计非常有价值.各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结. 5.通过此书以知悉一些知名游戏作品实际上所采用的方案. 6.书名中的架 ...
- libevent源码深度剖析四
libevent源码深度剖析四 ——libevent源代码文件组织 1 前言 详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的.本节内容不多,我想并不 ...