【问题标题】:PyCharm - Have author appear before imports?PyCharm - 作者是否出现在导入之前?
【发布时间】:2014-07-14 16:21:39
【问题描述】:

当您创建新的 python 文件并添加新的导入时,PyCharm 会自动添加导入和 __author__ 标记,只要它自己可以。但是,默认情况下 __author__ 标记将始终出现在任何导入下方。在我看来,__author__ 标签应该在文件的顶部,我也可以在其中放置文档字符串之类的内容。这样,描述文件的所有内容都在顶部,然后实际代码(包括导入)在其下方。

那么两个问题:

  1. 是否有充分的理由将 __author__ 标记放在导入下方?
  2. 如何设置 PyCharm 默认将 __author__ 标签放在导入的上方?

【问题讨论】:

    标签: python import pycharm jetbrains-ide author


    【解决方案1】:
    1. 根据PEP-8的“导入”部分:

      导入总是放在文件的顶部,就在任何模块 cmets 和 docstrings 之后,模块全局变量和常量之前

      __author__ 是一个全局“变量”,因此应该出现在导入的下方。

    2. 您可以进入 Pycharm 的设置 (Ctrl-Alt-S),选择“文件和代码模板”,然后根据自己的喜好调整“Python 脚本”模板。

    请注意:正如 Martijn 在下面的评论中提到的,上述声明的第 1 项不再正确,因为 PEP8 已更新(2016 年 6 月)https://www.python.org/dev/peps/pep-0008/#id24 有一个很好的例子

    """
    This is the example module.
    This module does stuff.
    """
    
    from __future__ import barry_as_FLUFL
    
    __all__ = ['a', 'b', 'c']
    __version__ = '0.1'
    __author__ = 'Cardinal Biggles'
    
    import os
    import sys
    

    【讨论】:

    • 感谢您的回复。您的 (1) 实际上支持 notauthor 放在导入下方。就在文档字符串和模块 cmets 的下方。因此,它看起来应该出现在导入的上方。对于 (2) PyCharm“Python 脚本”模板仅包含 author 条目,没有其他内容。需要在那里进行哪些更改才能使其显示在自动添加的导入上方? (例如,当您告诉 PyCharm 根据您在代码中使用的功能自动添加导入时)
    • 我认为这是不可能的。另一个需要解决的问题是 future 必须 在其他任何事情之前导入,甚至在其他导入之前。为什么还要使用_author_?就我个人而言,我根本不使用它,因为我看不出有什么好的理由这样做。
    • 我认为根本没有使用 author 的真正充分理由的论点可能是正确的。不幸的是,这实际上并没有回答最初的问题,所以我肯定会把这个问题留给未来的访客和其他可能的答案。
    • @insecure - 但是此页面上的另一部分讲述了不同的内容:python.org/dev/peps/pep-0008/#module-level-dunder-names模块级别的“dunders” [...] 例如 __all____author____version__ 等应该放在模块文档字符串之后,但在除 from future之外的任何导入语句之前> 进口,这个呢?
    • PEP 8 一直是 updated in June 2016,并且 dunder 模块全局变量现在明确放置在 导入之前(但在任何 from __future__ 导入之后)。请参阅修订版 cf8e888b9555c451868df657Coding style (PEP8) - Module level "dunders"
    猜你喜欢
    • 2016-03-05
    • 2018-08-31
    • 2019-05-13
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2023-03-29
    • 2016-06-28
    • 1970-01-01
    相关资源
    最近更新 更多