day5学python 基础+装饰器内容
生活随笔
收集整理的這篇文章主要介紹了
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 timeuser,word="cf","123" 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 wrapperreturn 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()?
轉載于:https://www.cnblogs.com/cc123nice/p/10468446.html
總結
以上是生活随笔為你收集整理的day5学python 基础+装饰器内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: # 2019-2020.3 《java程
- 下一篇: sublime python配置运行