''' 匿名函數: lambda ''' def Add(a,b): print(a+b) Add(2,3) per = lambda a,b:a+b print(per(2,3))
''' 三目運算 ''' a = 20 print("True") if a >10 else print("False")
''' 匿名函數+三目運算 ''' login = lambda username,password:print('登陸成功') if username == 'shenqiang' and password =='123' else print('登陸失敗') login('shenqiang','123')
''' 匿名函數,字典的排序 ''' data = lambda **kwargs:dict(sorted(kwargs.items(),key=lambda item:item[0])) print(data(name='shenqiang',age = 28))
'''函數的內部函數map(),對列表內的一樣元素作一樣的事情''' list1 = [1,23,4,5,6] print(list(map(lambda x:x+100,list1)))
'''函數的內部函數filter(),對列表內的元素進行過濾''' list2 = [1,2,3,4,5,6] print(list(filter(lambda a:a>1,list2)))
''' 封閉:對已經實現功能的代碼儘可能不去修改 開放:對現有功能的代碼進行拓展 需求:在調用f or f1 先打印getInfo,再打印f ''' def getInfo(func): def info(): print("無涯自動化測試") func() return info @getInfo def f(): print("網易雲平臺") @getInfo def f1(): print("51CTO平臺") f() ''' 步驟: 1.當咱們執行getInfo時候,把被裝飾的f看成參數傳遞 2.getInfo函數的返回值會從新賦值 3.一旦結合了裝飾器,調用f函數的時候,實際調用了info內部分函數,原來的f1被覆蓋 4。被裝飾的f從新賦值給裝飾器的info ''' def login(func): def inner(Token): if Token == "01293": return func(Token) else: print("登陸失敗") return inner @login def profile(Token): print("登陸成功") profile("01293")