python locals()再探索 以及from .xx import xxx

原创
2014/08/18 15:19
阅读数 1K
def locals(): # real signature unknown; restored from __doc__
    """
    locals() -> dictionary
    
    Update and return a dictionary containing the current scope's local variables.重点
    """

    return {}


以前也知道这个函数,还是在使用django的时候用到了。今天看源码的时候觉得以前理解的不透彻。

首先:

调用这个函数返回一个字典     locals() -> dictionary

第二,也是最重要的,到底是收集的哪些域空间变量。以下是我的认识:

得看locals()出现的位置,模块内

a = 'dsd'
vb = 'dsd'
cc = locals()

大家可以打印看看cc是什么,有助于理解locals(),你也可以试试

a = 'dsd'
cc = locals()
vb = 'dsd'

函数内情况:

def test():
    a = 1
    b = 2
    c =3
    def test2():
        d = 4
        e = 5
        f = 6
    return locals()

这里的locals() = {'a': 1, 'c': 3, 'test2': <function test2 at 0x02C256F0>, 'b': 2}

总结,locals()所收集的变量由她所在的位置的域决定,可以理解成locals()是一个变量,他只收集和它平级的变量

from .xx import xx

from .. xx import xx

. 和 ..  什么意思(其实是目录关系)

.代表所在文件的当前目录

..代表所在文件的当前目录父目录


lib

   | te

   |__init__

   |c.py

   |d.py

__intit__

fs.py

c.py内的文件

from ..import fs
from .import d



展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部