Python入门-函数的参数、模块

在第1行设置了x和y后,分别将4和5赋值给x,y。当调用add(x,y)时候,Python创建了两个新变量:a和b,然后它们分别指向x和y。

当a和b相加后,函数返回值,而a和b则被自动删除。整个过程中,x和y未受影响。

但是,有些情况不能使用按引用传递。

#recall.py
def set2(x):
    x=1


函数set2将传入的变量值设置为1,但运行的时候,却不理想:

>>> m=4
>>> set2(m)
>>> m
4



m的值根本没有变,比较意外。

该示例可以理解为几步:

1、将4赋值给m.

2、调用set2(m):将m的值赋于给x,这样m和x都指向4

3、将1赋值给x.

4、函数set2结束后,x给删除

在函数set2中,根本不能访问变量m,因此无法修改它指向的值。

二、默认值

给参数指定默认值有很大的帮助,如给参数happily指定了默认值'Welcome to'

#happy.py
def happy(name,happily='Welcome to'):
    print(happily,name+'!')


这让你能够以两种不同的方式进行函数调用:

>>> happy('Guangzhou')
Welcome to Guangzhou!
>>> happy('Shenzhen','Smile to')
Smile to Shenzhen!


有关默认参数的一个要点是:只在第一次调用函数时给默认参数赋值。在复杂的程序中,这可能成为小bug的根源,须紧记。

三、关键字参数

在Python中,另一种很有用的参数指定是使用关键字。如:

#shopping.py
def shop(where='store',
         what='banana',
         howmuch='10 RMB'):
    print('I want to go to the',where)
    print(' and buy',howmuch,'of',what+'.')



使用该函数:

>>> shop()
I want to go to the store
 and buy 10 RMB of banana.
>>> shop(what='orange')
I want to go to the store
 and buy 10 RMB of orange.
>>> shop(where='Shenzhen',what='LV')
I want to go to the Shenzhen
 and buy 10 RMB of LV.
>>> shop(where='HK',what='Apple',howmuch='4800 RMB')
I want to go to the HK
 and buy 4800 RMB of Apple.


关键字参数有两个好处。首先是,能清晰指出了参数值,提高程序可读性;其次,关键字的参数顺序无关重要。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值