V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jakeyfly
V2EX  ›  问与答

flask 中的 localproxy 的源码看的蒙蔽了,求大佬解惑

  •  
  •   jakeyfly · 2018-08-12 12:15:02 +08:00 · 2604 次点击
    这是一个创建于 2300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是 flask localproxy 的源码 我没看明白_get_current_object 方法中的 self.__local 属性是那里来的.有大佬能指导小弟不

    大佬能不能解释一下 __init__方法中都做了啥呀

    Imgur

    13 条回复    2018-08-12 18:52:38 +08:00
    ericls
        1
    ericls  
       2018-08-12 12:23:40 +08:00 via iPhone
    我去 这个代码谁写的?
    freefcw
        2
    freefcw  
       2018-08-12 12:31:37 +08:00
    jakeyfly
        3
    jakeyfly  
    OP
       2018-08-12 12:36:37 +08:00
    @freefcw 我对 python 有一定了解,我只是找不到他设置这个属性的地方
    jakeyfly
        4
    jakeyfly  
    OP
       2018-08-12 12:38:25 +08:00
    @ericls flask 的 几万人写的吧
    ericls
        5
    ericls  
       2018-08-12 12:42:23 +08:00 via iPhone
    看了一下代码
    作为 proxy 这么写 make sense
    jakeyfly
        6
    jakeyfly  
    OP
       2018-08-12 12:57:51 +08:00
    @ericls 啥?????
    taozle
        7
    taozle  
       2018-08-12 13:00:10 +08:00
    __init__ 里面的第一句就是设置 __local
    jakeyfly
        9
    jakeyfly  
    OP
       2018-08-12 13:34:14 +08:00
    @taozle 不懂 __localproxy_local 被改成__local 了?
    jakeyfly
        10
    jakeyfly  
    OP
       2018-08-12 13:35:44 +08:00
    @taozle 我草明白了 私有变量自动改名!!!我二了 谢谢大佬
    chashao
        11
    chashao  
       2018-08-12 13:55:09 +08:00
    这一句 object.__setattr__(self, '_LocalProxy__local', local)
    因为__local 属性会被 python 变为_类名__local,所以添加_LocalProxy__local 也就是__local 私有属性
    jakeyfly
        12
    jakeyfly  
    OP
       2018-08-12 17:35:58 +08:00
    @chashao 是的 我脑子短路了 还是基础不扎实啊!! 想明白后 感觉自己好二
    freefcw
        13
    freefcw  
       2018-08-12 18:52:38 +08:00
    @jakeyfly 囧,你这描述和本意隔得有点远啊。不过说实话,我也没去仔细看代码,python 也不扎实
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.