为什么导入整个模块然后重命名其中一个函数?

时间:2016-01-22 23:56:49

标签: python import flask package packages

standard Arduino api的顶级__init__.py中,完成以下操作:

from . import json
jsonify = json.jsonify
  1. 为什么不import json
  2. 为什么要重命名json.jsonify?为什么不(i)import json然后在需要时致电json.jsonify()或(ii)from json import jsonify,然后在需要时致电jsonify()
  3. 我知道有两条评论,但它们很少启发我:

    # We're not exposing the actual json module but a convenient wrapper around
    # it.
    from . import json
    
    # This was the only thing that flask used to export at one point and it had
    # a more generic name.
    jsonify = json.jsonify
    

1 个答案:

答案 0 :(得分:2)

  
      
  1. 为什么不import json
  2.   

因为那会从标准库导入json模块,作者想要导入他们自己的json模块。

  
      
  1. 为什么要重命名json.jsonify
  2.   

使写入和阅读更容易一些。想象一下,您正在使用flaskflask.jsonify()编写速度更快,可读性高于flask.json.jsonify()(或者,它更容易导入,并且不会让您觉得你是从图书馆的深层内容中导入的东西。)

  

为什么不(i)import json然后在需要的地方拨打json.jsonify()

请记住,此文件指定 exports 。您必须将其称为flask.json.jsonify()

  

或(ii)from json import jsonify,然后在需要的地方拨打jsonify()

是的,第二行可以写成

 from .json import jsonify

(正如 mgilson 正确指出)。我猜这是个人风格的问题。