zoukankan      html  css  js  c++  java
  • 函数第二部分:为什么说动态参数是没有计划好的参数-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'>
    
  • 相关阅读:
    1065 01字符串
    poj 1321 棋盘问题
    0608模拟算法试题
    唯一的雪花
    2969 角谷猜想
    0607枚举算法试题
    3162 抄书问题(划分dp)
    8782:乘积最大(划分dp)
    2985:数字组合
    3531:判断整除
  • 原文地址:https://www.cnblogs.com/shujufenxi/p/10128260.html
Copyright © 2011-2022 走看看