python-1.函数

函数,对象,模块

函数文档

>>> def myfirstfunction(name):
        '这个函数用来打印一段字'
        #'这个不会打印出来'
        print(name)

>>> myfirstfunction('xinyue')
xinyue

>>> myfirstfunction.__doc__
'这个函数用来打印一段字'

>>> help(myfirstfunction)
Help on function myfirstfunction in module __main__:

myfirstfunction(name)
    这个函数用来打印一段字

参数

收集参数(可变参数)

>>> def text(*params):
        print('第一个参数是:',params)


>>> text(1,'小可爱',3,4,5)
第一个参数是: (1, '小可爱', 3, 4, 5) #默认大打包为tuple
>>> def text(*params,exp): #exp为命名关键字参数
        print('第一个参数是:',params)
        print('第二个参数是:',exp)


>>> text(1,'小可爱',3,4,5)
Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    text(1,'小可爱',3,4,5)
TypeError: text() missing 1 required keyword-only argument: 'exp'
>>> text(1,'小可爱',3,4,exp=5)
第一个参数是: (1, '小可爱', 3, 4)
第二个参数是: 5
>>> 

如果已经有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:

>>> nums = [1, 2, 3]
>>> calc(nums[0], nums[1], nums[2])
14

这种写法当然是可行的,问题是太繁琐,所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

>>> nums = [1, 2, 3]
>>> calc(*nums)  #推荐
14

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。
默认参数
默认参数必须指向不变对象!

>>> def add_end(L=[]):
        L.append('end')
        return L

>>> add_end()
['end']
>>> add_end()
['end', 'end']

修改:

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

关键字参数

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

在调用该函数时,可以只传入必选参数:

>>> person('Michael', 30)
name: Michael age: 30 other: {}

也可以传入任意个数的关键字参数:

>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {
  'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {
  'gender': 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值