python笔记之命名空间总结
文章目录
这两天阅读github上一些项目源码时,发现运算符重载部分不够熟悉,于是又翻了一遍《learning python》。
这是第三遍阅读,第一次是初学python时,第二次是为了给学习django清除障碍。这本书真是难得的佳作,极其清晰明了的教学风格,读来就像小说般流畅,每次重读总有收获。
既然开始写博客了,就好好做好读书笔记吧,方便自己日后的查阅,也方便他人。
在python中,变量名的赋值场所极其重要,这完全决定了变量名所在的作用域或对象。
直接上代码吧,这个例子很好地对python的命名空间概念做了总结:
|
|
从上到下,这里对X的赋值语句会产生:模块属性(11),本地变量(22),类属性(33),方法中的本地变量(44)以及实例属性(55)
这个例子把命名空间的几种情况集合起来了。
我们运行一下,就一目了然了:
|
|
我们再来做个模块间读取变量的实验:
|
|
manynames.f()打印的是manynames中的X而不是本文件中的X。
这里说明作用域总是由源代码中的赋值语句的位置决定的。
还有再说一点,就去吃饭啦~实际项目在,每个变量不应该用通样的变量名!!
走起
文章作者 种瓜
上次更新 2014-01-08