将Python模块划分为多个区域

将Python模块划分为多个区域,python,formatting,Python,Formatting,在C#中,我们可以使用 #region // some methods #endregion 有没有办法以类似的方式格式化python代码,以便将所有相关方法保存在一个块中?我建议您看看。如果您能很好地构造Python代码,那么拥有文档大纲和代码折叠将非常有用。不幸的是,我不认为你可以在C/C++/ObjC(Xcode/CDT)中创建任意的结构,如#区域C#(VS)或#pragma标记。看起来PyCharm有它,请看这里: 对于Python文件,支持以下两种样式。您不应该在一个文件中混合使用这

在C#中,我们可以使用

#region
// some methods
#endregion

有没有办法以类似的方式格式化python代码,以便将所有相关方法保存在一个块中?

我建议您看看。如果您能很好地构造Python代码,那么拥有文档大纲和代码折叠将非常有用。不幸的是,我不认为你可以在C/C++/ObjC(Xcode/CDT)中创建任意的结构,如#区域C#(VS)或#pragma标记。

看起来PyCharm有它,请看这里:

对于Python文件,支持以下两种样式。您不应该在一个文件中混合使用这两个文件

#<editor-fold desc="Description">
...
#</editor-fold>

Visual Studio也接受“区域”

只需使用类。。。不知道为什么这么难

class MyNewClass:
    def MyFirstMethod(self):
        print("MyFirstMethod in MyFirstClass")
这将提供您正在寻找的结构。从Python 2.6开始测试并运行

如果您没有在Python中使用类,那么可以像在c中一样调用它们#

享受

您可以使用:

#region My Block of Code
def f1():
    pass
def f2():
    pass
#endregion

然后你可以像在C#上一样折叠区域。

在sublime text 3中,你可以简单地键入注释并缩进代码,就像它在注释下一样,然后你可以像C一样折叠它#


是的,您可以使用与我们在c#中相同的方法,但请记住这是用于pycharmIDE的 范例


参考

以避免PyCharm抱怨违反PEP 8的使用

#  region region name here
your code here
#  endregion

使用VS代码,您可以简单地创建如下区域,甚至为这些区域添加名称:

#region some name
#Some very long code
#endregion
然后可以将其折叠成以下形状:

#region some name...

我知道这是一篇较老的帖子,目前版本1.53.2中有VS代码,可以使用#region[区域名称][代码块]#endregion[与您在区域开头输入的区域名称相同]

#region NameOfRegion
def name().....
#endregion NameOfRegion

请注意,在PyDev中,如果添加以“#--”开头的注释,则该注释应显示在大纲中,以帮助您构建内容(您可以在一行上执行ctrl+shift+4以添加该注释块)。True。仍然不同于#region,但无论如何都非常有用。事实上,我发现#region和#endregion在VSCode中也工作得很好。像这样使用类更类似于名称空间而不是区域。这不是一个合理的解决方案。以django的模型为例。模型通常是非常胖的,有大量的数据,有大量的方法来处理这些数据。一旦一个模型达到了一个合理的大小,最好将字段划分成更接近其方法的区域。使用折叠标签突出显示区域是一个完美的用法。现在,我可以快速确定我应该在哪里放置一个新方法来处理状态管理,一个新字段来处理支付信息,等等。即使使用静态或类方法,您也必须键入更多的内容来使用方法或属性,使用实例方法时,您必须初始化类。因此,要在区域中组织类,您必须处理两个类?不要担心链接,在PyCharm中,只需使用#region和#endregion即可确认这在VS代码中也有效。以#region开始区域,以#endregion结束区域在VSCode&Pycharm中使用此选项。。。太棒了!非常感谢。不幸的是,重新格式化程序Black似乎既不喜欢语法,也不喜欢在
后面插入空格。PyCharm似乎可以处理
后面的空格。坏主意,因为根据解释器的不同,它在python中的额外缩进可能是非法的。您的答案与@DarienPardinas的答案有何不同?您的答案比您的答案早了4年,您忘了提到您需要Python工具才能获得此功能。@DarienPardina的答案是关于Visual Studio的,我的答案是关于VS代码的。但您可能是对的,对于Python的VS代码扩展是需要的。将该链接包含在您的答案中可能会很好。:)感谢您,该链接现在已包含在评论中;)我想这就够了。但我非常怀疑,在没有安装此扩展的情况下,是否会有人在VS代码中使用Python编写代码。
#  region region name here
your code here
#  endregion
#region some name
#Some very long code
#endregion
#region some name...
#region NameOfRegion
def name().....
#endregion NameOfRegion