python 参数传递[打包与解包问题]
2016-05-07 20:53
483 查看
1.
传递参数时,可以传递基于参数名的字典f(**param_dict)
也可以传递基于位置的列表
f(*param_list)
2.获取参数列表
对于函数,可以直接在开头param_dict=locals()获取参数字典
对于方法(类、实例),获取的参数列表还额外含有cls、self项需要移除
可以用如下函数无副作用地得到纯洁的参数字典
def remove_key(dic,key): return {_key:dic[_key] for _key in dic if _key!=key}
3.关于locals、globals()的说明
globals是关于全局模块级的标识符字典locals是局部的。
但globals可以直接修改(或说修改对全局标识符有效)
locals()虽然也可以赋值,但赋值是无效的(按理说应该报错才对。。。)
或说
默认的情况下下,globals()是可以直接用dict来操作的,但是locals()并不一样,可以先认为locals()是一个只读的dict(或者是没有写回作用的dict),只能知道你当前的代码的局部变量,但是无法通过修改locals() 使之生效 如果用exec在执行代码时,指定一个dict作为这这段代码的locals,是可以修改的
相关文章推荐
- DayDayUP_Python自学教程[12]_Python正则表达式
- python numpy
- python的一些函数
- Python/Pelican搭建自己个人博客
- ipyhon 与 ipython notebook
- Python为什么不隐式实现self
- Python核心编程 第八章练习
- python生成随机数方法小结
- Python字符串操作汇总
- python爬虫抓取51cto博客大牛的文章保存到本地excel文件
- python logging 日志轮转文件不删除问题
- Python对list列表结构中的值进行去重的方法总结
- python 学习笔记 8(闭包)
- Python环境下安装使用异步任务队列包Celery的基础教程
- urllib&urllib2库--python2.X(学习日记1)
- Mac下安装opencv-python
- python 文件读写5个实例
- Python2 连接MySQL
- Python关键字yield的解释(stackoverflow)
- python 学习笔记7(类/对象的属性;特性,__getattr__)