函数的四类参数

2018-05-13  本文已影响0人  桃阿

四类参数

关键字参数

    def fun(p1=v1, p2=v2, ...):
          fun_body
    调用函数:
    fun(p1=value1, v2=value2, ...)
#关键字参数示例
def student(name="No name", age=0, address="No address"):
  print("I am a student")
  print("My name is %s,i am %s,my home town is %s"%(name, age, address))

_name = "张三"
_age = 18
_address = "山西"
#普通参数,只按照位置传递,容易出错
student(name=_name, age=_age, address=_address )
I am a student
My name is 张三,i am 18,my home town is 山西

收集参数

def fun(*args):
   fun_body
   按照list使用方式访问args得到传入的参数
   调用:
   fun(p1, p2, p3, ......)
# 收集参数代码
# 函数模拟一个学生进行自我介绍,但具体内容不清楚
# args 把他看成一个list
def stu( *args):
        print("Hello, 大家好!")
        print(type(args))   #type函数检测变量的类型
        for it in args:
            print(it)

stu("王五", 18, "北京")
stu("桃大仙,啊哈")
 王五
 18
 北京
 Hello, 大家好!
 桃大仙,啊哈

收集参数 之 关键字收集参数

def fun( **kwargs):
   fun_dody
#调用
fun(p1=v1, p2=v2, p3=v3, ......)
# 收集参数案例
# 自我介绍
# 调用的时候需要使用关键字参数调用
# 收集参数案例

def stu( **kwargs):
    print("大家好,我来介绍下:")
    print(type(kwargs))
    for k, v in kwargs.items():
        print(k,"-----",v)
    print("*" * 50)

stu(name="张三", age=18, address="东北", love="李四", work="Student")
stu(name="桃大神")
stu(age=20)
大家好,我来介绍下:
<class 'dict'>
name ----- 张三
age ----- 18
address ----- 东北
love ----- 李四
work ----- Student
**************************************************
大家好,我来介绍下:
<class 'dict'>
name ----- 桃大神
**************************************************
大家好,我来介绍下:
<class 'dict'>
age ----- 20
**************************************************

收集参数 之 混合调用的顺序问题

# 收集参数混合调用案例
# stu模拟一个学生的自我介绍

def stu(name, age, address, hobby="没有", *args, **kwargs):
    print("大家好!")
    print("我叫%s,我今年%s岁了,我的家庭在%s"%(name, age, address))
    if(hobby == "没有"):
        print("我没有爱好!@")
    else:
        print("我的爱好是%s"%hobby)
    for k, v in kwargs.items():
        print(k, " ", v)
    print("*" * 50)

# NO.1
stu(name="嘻嘻", age=12, address="sda")
# NO.2
stu(name="呵呵", age=5, address="机场", hobby="打游戏")
# NO.3
stu(name="哈哈", age=18, address="机场", hobby="打ss", love="嘻嘻")
大家好!
我叫嘻嘻,我今年12岁了,我的家庭在sda
我没有爱好!@
**************************************************
大家好!
我叫呵呵,我今年5岁了,我的家庭在机场
我的爱好是打游戏
**************************************************
大家好!
我叫哈哈,我今年18岁了,我的家庭在机场
我的爱好是打ss
love   嘻嘻
**************************************************
上一篇 下一篇

猜你喜欢

热点阅读