python自動化測試之函數(匿名函數lambda和三目運算等(高級用法))

'''
匿名函數:
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")
相關文章
相關標籤/搜索