函数注释以及函数注释的输出
def a(name,**kwargs):
'''
这里是注释
:param name: name
:param kwargs:
:return:
'''
print(f'name:{name},kwargs :{kwargs}')
print(type(kwargs))
#输出函数注释
print(a.__doc__)
这里是注释
:param name: name
:param kwargs:
:return:
不限定传入的值
- **kwargs:必须以字典方式传入
def a(name,**kwargs):
print(f'name:{name},kwargs = {kwargs}')
print(type(kwargs))
a(name = 'zhang',p ='f')
name:zhang,kwargs ={‘p’: ‘f’}
<class ‘dict’>
2.*args : 元组
def a(name,*args):
print(f'name:{name},args = {args}')
print(type(args))
a('zhang','f')
name:zhang,args = (‘f’,)
<class ‘tuple’>
3.组合使用
def a(name,*args,**kwargs):
print(f'name:{name},args;{args},kwargs:{kwargs}')
a('haha',1,2,3,{'k':'v'},k2='v2')
name:haha, args;(1, 2, 3, {‘k’: ‘v’}), kwargs:{‘k2’: ‘v2’}
匿名函数
- lambda :
使用方法:lambda a,b:a+b
a = ['q','w','e']
b = [1,2,3]
c = lambda x,y:x+y
print(c(a,b))
传入的参数
:
返回的结果
[‘q’, ‘w’, ‘e’, 1, 2, 3]
判断函数是否被调用
- callable(函数名)
高阶函数
- map():传入一个函数和一个序列,将函数作用于每一个序列
b = [1,2,3]
c = map(lambda a:a+2,b)
print(c)
<map object at 0x0159C490>
可通过强转输出想要的序列
例:list©
- reduce(f,d)
reduce()函数是将一个函数作用在一个序列上,这个函数必须接受两个参数,reduce将结果继续与下一个元素结合
from functools import reduce
b = [1,2,3]
c = reduce(lambda a,b:a+b,b)
print(c)
- filter():接受一个布尔值返回值的函数,将该规则依次作用于系列的每一个元素,根据返回值的true或者false ,决定该元素是否保留
b = [1,2,3]
def TorF(i):
if i > 2:
return True
else:
return False
c = filter(TorF,b)
print(list(c))
[3]
capitalize()与title() 区别
str = 'abc def hui'
print(str.capitalize())
print(str.title())
Abc def hui
Abc Def Hui
由此可见 capitalize()是将第一个字母大写
title()是将所有单词首字母大写