enum列舉是乙個類。
from enum import enum
class vip(enum):
green=1
print(vip.green.value)通過.value訪問green標籤對應值
.name獲取標籤名
列舉型別,列舉名字,列舉值是三個概念
for v in vip:
print(v)
遍歷列舉型別
result== vip.green==2將得到false,因為列舉本身與列舉數值不同
列舉型別不支援大小比較,支援等值比較 ==
列舉兩個值相同,則第二個列舉是第乙個的別名(兩個數值相同實際上代表一種列舉型別)
for v in vip.__members __: print(v)
遍歷列舉成員
列舉型別轉換:類名(變數) 自動返回變數值所對應的列舉型別
from enum import intenum (限制列舉型別為整型)
from enum import unique(引入unique裝飾器,不允許列舉數值相同)
函式式程式設計:
python中一切皆物件,函式只是一段可執行的**
f=curve_pre()def curve_pre():
a=25
def curve(x):
return a*x
return curve
(函式作為另乙個函式的返回值)
閉包=函式+環境變數
print(f.__closure __)檢視閉包
def f1():
a=10
def f2():
a=20
print(a)
print(a)
f2()
print(a)
a=20是乙個區域性變數
origin=0
def go(step):
#global origin
new_pos=origin+step
#origin=new_pos
return origin
origin在函式內無法找到,會自動到全域性變數中尋找,即找到origin=0;但在函式內定義區域性變數origin的值後,python不會再去尋找全域性變數origin的值;使用global關鍵字,可以從函式內部修改全域性變數。
orgin=0
def fac(pos):
def go(step):
nonlocal pos #nonlocal強制宣告pos不是乙個本地區域性變數
new_pos=pos+step
pos=new_pos
return new_pos
return go
tour=fac(origin)
print(tour(2)) #2即為step的值
print(tour(3)) #3即step的值
閉包記住了上一次執行的狀態,且不改變全域性變數的值
匿名函式 lambda表示式
lambda para_list: expression;如f=lambda x,y:x+y print(f(1,2))
冒號後只能是表示式,不能在lambda表示式後用賦值操作
三元表示式
x>y?x:y x若大於y則取x值否則取y值
即 r=x if x>y else y
map類,接收兩個引數(func函式,list序列),返回map物件
list_x=[1,2,3,4,5,6]
def square(x):
return x*x
r=map(square,list_x)
返回值r為list_x中所有值的平方
map對傳入序列中的每一項執行函式
python的高階語法 Python的一些高階語法
一 python生成器 python生成器另乙個重要特性,就是能夠利用next函式與呼叫的 進行互動。yield變成了乙個表示式,而值可以通過名為send的新方法來傳遞 def psychologist print please tell me your problems while true an...
python的一些基本語法
print kkkjjjsss 6 8 print chr 65 print ord import datetime print datetime.datetime.now import time time.sleep 2.5 a 33,44,444 print len a a 33,44,444 ...
Python的一些高階函式
1.zip 函式 作用 zip函式結果是乙個可迭代物件,前面加上list,tuple,dict才可以列印出來,把兩個可迭代物件進行一對一取出,這兩個取出的元素放入乙個元祖裡,最後的結果是乙個可迭代物件 引數 括號裡必須參入兩個可迭代物件 ziper list zip 1,2,3 4,5,6 prin...