• * 和 ** 的区别

  • *args,将剩余参数包裹为一个tuple

Python学习笔记(九):更多功能

  • **args,将参数包裹为一个dict

Python学习笔记(九):更多功能

  • lambda形式

封装有限逻辑的匿名函数,返回处理过的数据,
lambda x,y:x+y
冒号左边为传入的参数,返回冒号右边的计算结果,只能试用表达式
图中,最后twice等于函数return回的lambda函数,所以可以传参
twice=lambda s:s*5,不过直接这样写会提示要包在def中,还是标准点好
Python学习笔记(九):更多功能

  • 闭包

感觉和之前的lambda意思差不多,不过返回的是完整的函数
外层函数返回内层函数,可以在外部环境调用内层函数,可以调用其外层函数的局部变量,即在外部引用外层函数内部变量
Python学习笔记(九):更多功能

  • exec、eval

运行含有python语句的字符串
exec,执行python命令
eval,python运算

Python学习笔记(九):更多功能

  • repr

返回一个对象的string形式,类似于JS里的JSON.stringify()
转换后的字符串,可用exec执行
python2用反引号``包裹,可以达到同样的效果,python3不支持了
Python学习笔记(九):更多功能

  • 递归

循环引用自身的函数
Python学习笔记(九):更多功能

  • 使用递归和切片,实现字符串去除收尾空格

Python学习笔记(九):更多功能

相关文章: