函数的简单介绍

函数:带名字的代码块
 

>>> def greet_user(usename):    # 用def给函数定义  记得:
...     #下面是函数体
...     """显示简单的问候语"""    #解释函数的功能   文档说明
...     print("Hello " + usename )
...
>>> greet_user("TOM")    # 调用函数    一个函数可以调用多次
Hello TOM

note:位置参数,关键字参数,默认值,可变参数(两种方式)
1.   *(python接收到的是元组) 可以在list和tuple加*作为变量传递给函数,但形参,实参都要前面都要加*
2. **  (python接收到的是字典) 对于关键字参数,函数的调用者可以传入任意不受限制的参数,用in判断到底传入了那些参数。如果要限制关键字参数的名字(命名关键字参数),可以在前面加上*,如果前面有可变参数,就不需要加上*号。同样命名关键字参数可以有缺省值。对于任意的函数都可以通过 func(*args,**kw)

获取文档说明的两种方法:
1.函数名.__doc__   (greet_user.__doc__) 双下划线
2.help(函数名)

默认参数一个坑:

>>> def add_end(L=[]):
...     L.append('END')
...     return L
...
>>> #正常调用
... add_end([1,2,3])
[1, 2, 3, 'END']
>>> add_end(['x','y','z'])
['x', 'y', 'z', 'END']


>>> #使用默认参数调用
... add_end()
['END']
>>> add_end()
['END', 'END']
>>> add_end()
['END', 'END', 'END']

python在定义时,默认参数也是一个变量,等于[],它指向[].每次调用该函数,如果改变了L的值,则下次调用时,参数的值就改变了。
定义默认参数时,默认参数必须指向不变。(本例中必须一直指向[])
可以通过None实现
 

>>> def add_end(L=None):
...     if L is None:
...         L = []
...     L.append('END')
...     return L
...
>>>
>>> #使用默认参数调用
... add_end()
['END']
>>> add_end()
['END']
>>> add_end()
['END']

None 这样的不变对象一旦创建,对象的内部数据就不能修改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点我呢提都没有,在编写程序时,尽量设计成不变对象
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值