zoukankan      html  css  js  c++  java
  • Python学习笔记--8.7 函数--可变参数、关键字参数

    #可变参数,关键字参数
    '''
    def my(name,sex='女')#name 是位置参数,是必填的。sex='女'是默认值参数,不是必填的。
    pass

    def send_sms(phone_num):#发短信,需要知道手机号.这是给1个人发
    pass
    print('给%s发报警短信'%phone_num)


    def send_sms(*phone_num):#给多人发信息

    for p in phone_num:
    print(p)
    print('发报警短信'phone_num)
    #不传参数
    #传1个
    #传N个
    send_sms()
    send_sms(18643235)
    send_sms(1354354352,13334233)

    # 可变参数,参数组
    # 1不是必传的
    # 2它把传入的元素全部都放到了一个元组里
    # 3不限制参数个数
    # 4它用在参数比较多的情况下
    # def send_sms(*args):
    # for p in args:
    # print(p)

    #关键字参数
    def send_sms2(**phone_num):
    #1不是必传的
    #2不限制参数个数
    print(phone_num)

    send_sms2()
    send_sms2('sdfagewa')
    send_sms2(name='xiaohei',sex='nan')
    send_sms2(addr='北京',country='中国',c='abc',f='kkk')

    def send_sms2(**kwargs):#kw是key word的意思。

    #一个星号传到是元组,两个星号传的是字典


    def my(name,country='china',*args,**kwargs):
    #第一位置必须是位置参数,第二位是默认参数,第三是可变参数,第四位是关键字。必须是这个顺序。
    print(name)
    print(country)
    print(args)
    print(kwargs)
    my('aaa')
    #运行结果
    # aaa
    # china #这项有默认值
    # () #后边两个没有传,所以都是空的
    # {}

    my('xiaojun','japan','beijing','天通苑',color='红色',age=32)
    #运行结果
    # xiaojun
    # japan
    # ('beijing', '天通苑')
    # {'color': '红色', 'age': 32}

    my('xiaojun','beijing','天通苑',color='红色',age=32)
    #运行结果
    # xiaojun
    # beijing
    # ('天通苑',)
    # {'color': '红色', 'age': 32}

    '''
    my('xiaojun','beijing','天通苑',color='红色',age=32,country='shanghai')
    #运行结果,报错。country=''的位置不对。
  • 相关阅读:
    c++ primer 读书笔记
    如何利用c++编写不能被继承、但可以在类外定义对象的类
    为什么对多线程编程这么怕?pthread,sem,mutex,process
    死锁的理解
    动态规划--找零钱 coin change
    C++ STL中Map的按Key排序和按Value排序
    c++ STL sort struct comp
    《剑指offer》第二十五题(合并两个排序的链表)
    《剑指offer》第二十四题(反转链表)
    《剑指offer》第二十三题(链表中环的入口结点)
  • 原文地址:https://www.cnblogs.com/youyou-luming/p/9649543.html
Copyright © 2011-2022 走看看