Day08-函数(3)
生活随笔
收集整理的這篇文章主要介紹了
Day08-函数(3)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
?
import functools #偏函數(shù) def demo(a,b,c,d):print(a,b,c,d)# def partital_demo(a,b): # demo(a,b,3,4) # partital_demo(1,2)#實現(xiàn)偏函數(shù) # #固定前兩個 # demo = functools.partial(demo,5,6) # demo(10,50)# #固定后兩個 # demo=functools.partial(demo,c=3,d=5) # demo(1,2)#固定任意參數(shù) demo= functools.partial(demo,b=5,c=6) demo(a=1,d=1)# 變量作用域:能夠引用變量的代碼段就叫做這個變量的作用域 # 1 if while try-except 這些不引入新的作用域 # if 3 > 0: # a = 1 # print(a)# 全局作用域:在所有的函數(shù)外定義變量 # 范圍:從定義開始,到本文件結(jié)束 中間處處可見a = 3def demo():a = 5print("demo", a)a = 5 # 局部作用域,局部變量;范圍:整個函數(shù)體print(a)demo() print(a)# 內(nèi)部函數(shù) def test():c = 10 # 閉包作用域 :從定義開始到結(jié)束# 內(nèi)部函數(shù)def inner(): # 作用域是局部作用域b = 10print("inner", b)inner()inner() # 不能在外部引用內(nèi)部函數(shù) 報錯test()# 內(nèi)建作用域:所有文件可用,系統(tǒng)函數(shù)、變量都是內(nèi)建作用域 print(max(1,2,3)) # # n內(nèi)鍵作用預(yù)> 全局作用域>閉包作用域>局部作用域a = 3 c = 6 def outter():a = 1b = 3print("outter",a,b)def inner():b = 5print("inner",b)print("c=",c)print("a=",a)inner()# 變量查找規(guī)則:從變量引用的地方開始向上找,找離他最近的變量 outter()# 在函數(shù)里無法直接修改全局變量 a = 10 print(id(a)) def test():global a #告訴python解釋器,以下引用的是全局變量,并可以修改# a+=1# print(id(a))a = 10print(id(a))print(a) #6 test() print(a) #6def outter():c= 10def inner():nonlocal c #專門用于修改閉包作用域c+=1 #不允許直接修改閉包作用域的變量print(c)inner() outter()def outter():#外部函數(shù)a = 1def inner(): #內(nèi)部函數(shù)print(a)inner() outter()# # def outter():#外部函數(shù) # a = 1 # def inner(): #內(nèi)部函數(shù) # print("inner",a) # return inner # #得到內(nèi)部函數(shù)地址 # res = outter() # res() #調(diào)用內(nèi)部函數(shù) #要增強(qiáng)功能的函數(shù) def eat():print("我喜歡吃水果")#裝飾器 # 參數(shù):必須要把增強(qiáng)的函數(shù)傳進(jìn)來 def magic(func):def inner():func() #調(diào)用原來的函數(shù)#增強(qiáng)的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner eat = magic(eat) eat()#裝飾器 # 參數(shù):必須要把增強(qiáng)的函數(shù)傳進(jìn)來 def magic(func):def inner():func() #調(diào)用原來的函數(shù)#增強(qiáng)的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner @magic #@外部函數(shù) eat = magic(eat) #要增強(qiáng)功能的函數(shù) def eat():print("我喜歡吃水果") eat()#裝飾器 # 參數(shù):必須要把增強(qiáng)的函數(shù)傳進(jìn)來 def magic(func):def inner(tmp):func(tmp) #調(diào)用原來的函數(shù)#增強(qiáng)的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner @magic #@外部函數(shù) eat = magic(eat) #要增強(qiáng)功能的函數(shù) def eat(food):print("我喜歡吃{}".format(food)) eat("臭豆腐")#裝飾器 # 參數(shù):必須要把增強(qiáng)的函數(shù)傳進(jìn)來 def check_login(func):def inner(password):if password == '123':func(password)#執(zhí)行原來功能else:print("密碼錯誤,重新輸入")return inner #外部函數(shù)的返回值@check_login #@外部函數(shù) forum = check_login(forum) #要增強(qiáng)功能的函數(shù) def forum(password):print("發(fā)帖:印度")@check_login def comment(password):print("韓國人更厲害")forum('123')?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Day08-函数(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。