函式的巢狀定義
def函式的巢狀呼叫func1():
print('
from func1')
def func2(): #
func2=記憶體位址
print('
from func2')
(func2)
func1()
#函式在python中是第一類物件比較兩個數的大小
defmax2(x,y):
if x >y:
return
x
else
:
returny#
比較三個數的大小
defmax3(x,y,z):
res1=max2(x,y)
res2=max2(res1,z)
return
res2
print(max3(11,199,2))
# 結果
# 199
1.可以被引用
x=1y=x2.可以當中引數傳入(函式名的本質,函式的記憶體位址)defbar():
print('
from bar')
f=bar #
作為物件賦值時 bar代表的值是 記憶體位址
f()
f=func3.可以當中函式的返回值
def4.可以當中容器型別的元素bar(x):
(x) x()
bar(func)
def bar(x): #命名空間分為三類x=func
return x #
return func
res=bar(func) #
res=func
#print(res)
res()
內建命名空間:存放python直譯器自帶的名字,在直譯器啟動時就生效,直譯器關閉則失效
全域性命名空間:檔案級別的名字,在執行檔案的時候生效,在檔案結束或者在檔案執行期間被刪除則失效
區域性命名空間:存放函式內定義的名字(函式的引數以及函式內的名字都存放與區域性命名空間), #在函式呼叫時臨時生效,函式結束則失效
三種命名空間之間的載入順序和取值順序:
載入順序:內建(直譯器啟動時載入,程式執行前載入)-->全域性(從上到下順序載入進來的)-->區域性(呼叫的時候載入)--->內建
取值:在區域性呼叫:區域性命名空間--->全域性命名空間--->內建命名空間
在全域性範圍找:
全域性----內建----區域性使用:
全域性不能使用區域性的
區域性的可以使用全域性的
1、命名空間和作用域是分不開的.
2、作用域分為兩種
全域性作用域:全域性命名空間與內建命名空間的名字都屬於全域性範圍,在整個檔案的任意位置都能被引用,全域性有效
區域性作用域:區域性命名空間,只能在區域性範圍內生效
3、站在全域性看
使用名字的時候,如果全域性有,用全域性的
如果全域性沒有,用內建的
4、為什麼要有作用域
為了函式內的變數不會影響到全域性
5、
pass
閉包:1.閉 :內部的函式
2.包 :包含了對外部函式作用域中變數的引用
defhei():
x=20
definner():
x=10 #
如果x定義了,他就用自己的了,就實現不了閉包
print(x)
#判斷閉包函式的方法:__closure__閉包的常用形式:
defhei():
x=20
definner():
'''閉包函式
(x)
return
inner()
閉包函式的常見形式
#view code輸出的__closure__有cell元素 :是閉包函式
deffunc():
name = '
eva'
definner():
(name)
print(inner.__closure__
)
return
inner
f =func()
f()#
輸出的__closure__為none :不是閉包函式
name = '
egon
'def
func2():
definner():
(name)
print(inner.__closure__
)
return
inner
f2 =func2()
f2()
閉包獲取網路應用
#view codefrom urllib.request import urlopen
#def index(url):
#def inner():
#return urlopen(url).read()
#return inner
#u=''
#get = index(u)
#print(get())
pass
Python 全棧開發 python內建函式
abs 對傳入引數取絕對值 bool 對傳入引數取布林值,none,0,這些引數傳入bool後,返回false all 所有傳入引數為真,才為真 any 任何乙個傳入引數為真,才為真 ascii 自動執行傳入引數的 repr 方法 將物件轉換為字串 bin 接收乙個十進位制,轉換成二進位制 oct ...
Python 全棧開發 python元組tuple
什麼是元組 元組就是乙個不可變的列表 並不是列表,只是為了便於記憶 用途 用於存放多個值,只能讀不能二次賦值 表現形式 小括號 中間以逗號分割各個元素 eg tuples a b c d 生成乙個簡單的元組 tuples tuple range 5 print tuples 結果 0,1,2,3,4...
Python 全棧開發 監控篇
如果你已經玩轉了 python 程式語言語法,肯定想用這些知識,開發一款應用程式,它可以是在網上,可以炫耀或 那就需要全棧式開發 python。具體如何建立,部署和執行生產 python web 應用程式,參考 full stack python,本文主要介紹一點,監控。為什麼要監控?web 應用程...