python关键字参数非关键字参数

本文详细解释了Python函数中默认参数与关键字参数的使用方式,通过实例展示了如何定义并调用带有默认参数的函数,以及如何使用关键字参数进行函数调用。文章深入探讨了参数传递的灵活性与效率。
#有默认参数
#定義默认参数 age = 1, gender = 'M'

def person( name, age = 1, gender='M'):
      print 'name: %s   age: %d    gender: %s' % (name, age, gender)

#這裡只傳一個值給第一個參數which is name, age 和 gender已經有默认值,
#就算不傳新值給 age or gender也沒問題

person('Jacky')  
#output --> name: Jacky     age: 1    gender: M


#沒有默认参数
def person(name, age, gender):
      print 'name: %s   age: %d   gender: %s' % (name, age, gender)

# person('Jacky')  <-- error, 3個參數只傳了一個值
#沒有默认参数,就一定要傳 N(total 参数) 個值給 function.

person('Jacky', 19, 'M')


******************************************************

#关键字参数
#用上面第一個例子 person( name, age=1, gender='M')
#用关键字給function傳值時,不雖要跟著順序來也沒問題


#就算 age 和 name 順序不同, 但因為是用关键字來傳值,所以沒問題
person( age=18, name='Jacky')  
#output --> name: Jacky   age: 18    gender: 'M'

person( gender='F', age=17, name='Ashley')
#output --> name: Ashley  age: 17   gender: 'F'

# Error, 沒用关键字去傳值
# person( 20, 'M', 'Jacky')  <-- 沒用关键字時,一定要按順序去傳值


i tried to explain as clear as i can....xP
Python关键字参数是指在函数调用时,使用形如"key=value"的语法传递参数值。与位置参数不同,关键字参数不必按照函数定义时的顺序传递参数值,而可以根据参数名来传递,从而使得函数的使用更加灵活。 关键字参数的使用优点如下: 1. 增强代码的可读性:通过在函数调用时使用参数名来清晰地描述每个参数的含义,使得代码更加易于阅读理解。 2. 减少参数调用顺序的限制:使用关键字参数可以根据参数名的顺序来传递参数值,而不必依赖于参数在函数定义中的位置,从而降低了参数顺序的限制。 3. 使得函数调用更加灵活:通过指定参数名来传递参数值,可以忽略某些参数,或者不按照参数定义的顺序传递参数值,从而使得函数的使用更加灵活。 关键字参数的使用示例: ```python def greet(name, age, city): print("姓名:" + name) print("年龄:" + str(age)) print("城市:" + city) greet(name="张三", age=18, city="北京") # 通过参数名传递参数值 greet(city="上海", name="李四", age=20) # 参数值的顺序可以任意 ``` 在函数定义时,可以使用默认值来定义关键字参数的默认参数值。如果在函数调用时没有传递该关键字参数的值,那么将使用默认值作为参数的值。例如: ```python def greet(name, age, city="北京"): print("姓名:" + name) print("年龄:" + str(age)) print("城市:" + city) greet(name="张三", age=18) # 使用默认值作为参数的值 ``` 总而言之,关键字参数使得函数调用更加灵活、可读性更强,能够方便地指定参数的值,从而提升代码的可维护性可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值