Python basics _args_*args_**kwargs interpretation, detailed explanation of all parameter definitions in python

Business code application:

class Base:

    def findele(self, *args):                      # 方法中的*args,是将多余的参数,打包成元组。
            return self.driver.find_element(*args) # 返回中的*args,是将打的包解开。

    # 点击
    def click(self, *args):                        
        return self.findele(*args).click()
    # 调用后是self.click(By.XPATH,"//*[text()='新闻']"),传入的参数打包成元组发送给findele最终拆包,才能用
    # 你问click里面为什么要打包,不打包的话你传入是多个参数呀
    
    # 发送内容
    def sendkey(self, args, value):              
        self.findele(*args).send_keys(value)
     # 调用send((By.XPATH,"//*[text()='新闻']"),'发送'),元组一个参数、value一个参数,findele的*args拆包。

Non-business verification:

def myprint(name,*args, **kwargs):
    print(args)
    print(args) # 未拆包,除了第一个和关键字参数,其他输出是元组类型
    print(*args) # 进行拆包,不拆包怎么用,看上面的业务代码。
    print(kwargs)
    print(kwargs)# 未拆包,输出是字典类型
    print(*kwargs)# 进行拆包(**kwargs无法打印)

# 1、*args:元组类型的可变形参;
# 2、 ** kwargs:字典类型的可变形参;
myprint(1, 2, 3, 4, 8, a= 5, c=7)

'''
args
(1, 2, 3, 4, 8)
1 2 3 4 8
kwargs
{'a': 5, 'c': 7}
a c
'''

Involving knowledge of parameters in python:

# 位置实参:普通的实参 按照参数的顺序把数据传递给形参

def sum_fun(num1,num2=666,*args,):
    plus = num1*num2
    print("两个数字的乘积=%s" % plus)

sum_fun(2, 3)
test_fun(num1=3,num2=4)
# 位置实参:2和3
# 关键字实参:num1=3,num2=4

def test_fun(num1,num2=10):
    print(num1)
    print(num2)
test_fun(2)
# 默认形参:num2=666 (如果设置实参,就会使用实参.如果不设置实参,就会使用默认形参)

def args_fun(*args):
    sum_plus = 0
    for i in args:
        sum_plus += i
    print(sum_plus)
args_fun(1, 2, 3, 4,)
# 元组型可变形参:*args(传进来的任意位置参数会被包装成为元组,随后赋值给args)

def stu_info_fun(**kwargs):
    name = kwargs.get("name", "暂无")
    age = kwargs.get("age", "暂无")
    weight = kwargs.get("weight", "暂无")
    print("姓名:%s,年龄:%s,体重:%s" % (name,age,weight))
stu_info_fun(name='王', age=19, weight=140) 
# 字典型可变形参:**kwargs(给形参前面添加**,标志其为字典型可变形参,传进来的任意位置参数会被包装成为字典,随后赋值给kwargs)

Guess you like

Origin blog.csdn.net/weixin_45451320/article/details/112913639