zoukankan      html  css  js  c++  java
  • 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")
  • 相关阅读:
    CF1439E
    CF1446
    CSP2020 游记
    CF1442
    CF1444E
    CF1444
    CF850F Rainbow Balls
    A
    uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数)
    loj536「LibreOJ Round #6」花札(二分图博弈)
  • 原文地址:https://www.cnblogs.com/shen-qiang/p/11795888.html
Copyright © 2011-2022 走看看