python函数的参数

位置参数 (Required arguments)
python的函数中,可以不设定参数,从而无参数直接调用函数。如果传入参数,常用的参数就是位置参数。比如:

def get_name(data):
	return data["name"]

位置参数经常用,也很简单,不多说。

默认参数 (Default arguments)
默认参数也很简单,就是多了个=号,设定一个默认值,如果需要更改,可以直接传入新的值。比如:

def get_age(data, is_man = True):
	if is_man:
		return data['age']
	else:
		print("She is women, not a man")

可变参数 (Variable-length arguments)

  • 传入的参数个数不定,可以是0个,也可以是多个。
  • 只要在参数名称前边,加一个 * 星符号即可,星符号只是表明这个参数是可变参数,函数中调用时,无需加星号
  • 以下例子,运用for循环调用了每一个可变参数
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
>>> calc(1,2,3)
14

关键字参数(Keyword arguments)

  • 就是传入键值对参数
  • 表示方法:**kw,参数名称前边加两个星
  • 关键字参数传入具体值时,就是传入等号的键值对即可(如city=‘Shanghai’, gender=‘Male’)
  • 以下例子,使用for循环,调用了每一个关键字参数
def person(name, age, **kw):
    if 'city' in kw:
        # 有city参数
        pass
    if 'job' in kw:
        # 有job参数
        pass
    for k, v in kw.items():
    	print(k, v)
    print('name:', name, 'age:', age, 'other:', kw)
>>> person('Jason', 24, city=‘Shanghai’, gender='Male')

city Shanghai
gender Male
name: Jason age: 24 other: {'city': 'Shanghai', 'gender': 'Male'}

扩展

命名关键字参数

  • 限制关键字参数传入的名称,比如固定为(city,gender)
  • 这时不是用**kw了,而是用 (*, city, gender),一个星,逗号后边跟上固定的关键字参数名称。
  • 调用方法和关键字参数一样,但不能传入其他的键值对参数。
  • 这个很鸡肋,感觉不需要,直接用位置参数就好了。
def man(name, age, *, city, gender):
    print('name:', name, 'age:', age, 'other:', city, gender)
>>> man('Jason', 24, city='Shanghai', gender='Male')
name: Jason age: 24 other: Shanghai Male

参数组合

  • 各种类型参数可以组合定义
  • 各种类型参数定义有顺序要求
  • 顺序必须是:必选参数、默认参数、可变参数、命名关键字参数、关键字参数
def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值