chzhiyi / -KnowledgeShare

6 stars 1 forks source link

20190510 - python函数的类型和使用方法 - huasheng #66

Open huashengcaicai opened 5 years ago

huashengcaicai commented 5 years ago

python中的函数有五种普通参数(位置参数)、默认参数、可变参数(不定长参数)、关键字参数、组合参数,总共5种

1.普通参数(位置参数),这种最普通的,代码演示,实际参数多余形参时会报错

def hello(age):
    print('必须参数是',age)
hello(18)

2.默认参数,就是给形成赋值,代码示例

def hstwo(name,age=23):
    print('我叫:',name)
    print('我今年',age)
hstwo('王二',28)\
hstwo(name='王二',age='28')

3.可变参数

def change(age, *som):
    print(age)
    for i in som:
        print(i)
    return
change('name','year','mon','address')

4.关键字参数,默认参数的一种集合,,调用时参数 位置不重要,代码示例

def func_name(name='TOM', age=20, addr='No addr'):
    print('I am a student.')
    print("My name is {0}, and I am {1} years old, I come from {2}.".format(name, age, addr))
# 调用
# 关键字参数调用时,参数的位置是不重要的
func_name(name='WangMeili', addr='China', age=23)

5.收集参数

def InstroStu(*args):
    print("Hello everyone,allow me to introduce myself:")
    print(type(args))
    for params in args:
        print(params)
# 调用
# 相当于把提供的实参,装入到args中
InstroStu('WangMeili', 18, 'Nanjing', 'single')
InstroStu('TOM')

关键字收集参数

def Stu(**kwargs):
    print('Hello everyone,allow me to introduce myself: ')
    print(type(kwargs))
    # 对于字典的访问
    for key, value in kwargs.items():
        print(key, '--->', value)
# 调用
Stu(name='wangmeili', age=19, add='Nanjing', lover='Gavin', work='Teacher')
Stu(name='TOM')
Stu()

7.组合参数

位置参数,默认参数,收集参数(tuple),关键字参数,收集关键字参数(dict)

位置参数必须放在最前面,收集关键字参数放在最后面 说明:默认参数、关键字参数和收集参数(tuple)的位置可以进行互换。 如果收集参数在前,则其后的所有参数除了收集关键字参数外,都会变成关键字参数, 若要修改参数的默认值,方法同关键字参数;如果收集参数在后, 那么前面所有的参数除了位置参数外,都会变成默认参数,若要修改默认值,方法同默认参数