• 函数第二部分:为什么说动态参数是没有计划好的参数-Python基础前传(11)


    动态参数1-一个星号变元组

    • 动态参数存在的意义?

      • 函数的作者有时候也不知道这个函数到底需要多少个参数,这时候动态参数就有存在的意义了
    • 动态参数创建-加*

      • 底层原理是:把数值型或其他数据类型变成了元组类型,是元组了就可以多加实际参数了
    #不用动态参数
    def f1(a):
    	print(a,type(a))
    f1(123)
    >>> 123 <class'int'>
    
    #使用动态参数
    def f1(*a):
    	print(a,type(a))
    f1(123456789)
    >>> (123,456,789) <class'tuple'>
    f1(123,[11,22,33],{"key1":"values2"})
    >>>(123,[11,22,33],{"k1":"values2"})
    

    动态参数2-两个星号变字典

    def f1(**a):
    	print(a,type(a))
    f1(k1=123,k2=456)
    
    >>>{'k1':123,'k2':456} <class 'dict'>
    

    动态参数的规范书写

    #  *args,  **kwargs
    def f1(*args,**kwargs` )
    
    

    为动态参数传入列表、字典、元组

    def f1(*args):
    	print(args,type(args))
    li = [11,22,33]	
    f1(li)
    f1(*li) #加*相当于for循环遍历了列表里的元素
    
    >>>([11,22,33],)<class 'tuple'>
    >>>(11,22,33)<class 'tuple'>
    
    def f1(**kwargs):
    	print(kwargs,type(kwargs))
    dic = {"k1":123}
    f1(k1=dic)
    f1(**dic)
    
    >>>{'k1':{'k1':123}}<class 'dict'>
    >>>	{'k1':123}<class 'dict'>
    
  • 相关阅读:
    VUe兄弟通信
    vue组件之间的通信, 父子组件通信,兄弟组件通信
    js 数组 map方法
    vue生命周期
    使用JQuery获取被选中的checkbox的value值
    C#中struct和class的区别详解 (转载)
    C# 增加时间的三个方法
    c# 事件3
    C# 事件2
    C# 事件
  • 原文地址:https://www.cnblogs.com/shujufenxi/p/10128260.html
Copyright © 2020-2023  润新知