2011-11-25 513 views
20

在C#中,我们可以通过使用划分Python模块成多个区域

#region 
// some methods 
#endregion 

有什么办法来格式化以类似的方式Python代码,这样我可以把我所有的相关方法在一个块创建的区域?

回答

4

我建议你看看PyDev。如果你很好地构建你的Python代码,那么有一个文档大纲和代码折叠将是非常有用的。不幸的是我不认为你可以在C/C++/ObjC(Xcode/CDT)中执行像#region C#(VS)或#pragma标记这样的任意结构。

+3

注意,在PyDev的,如果你添加一个以“#---”开头的注释,该注释应该出现在大纲中以帮助您构建事物(您可以在一行上按Ctrl + Shift + 4添加该注释块)。 –

+0

是的。仍然不同于#region,但无论如何非常有用。 – Krumelur

18

看起来PyCharm有它,在这里看到:https://www.jetbrains.com/help/pycharm/2016.1/code-folding.html#using_folding_comments

对于Python文件,以下两种风格的支持。你不应该把它们混在一个文件中。

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

#region Description 
... 
#endregion 

的Visual Studio接受 “区域” 太

+0

链接无效。有小费吗? – Zbun

+0

不要担心PyCharm中的链接,只需使用#region和#endregion – Zerubbabel

-4

只需使用类...不知道为什么会这样难

class MyNewClass: 
    def MyFirstMethod(self): 
     print("MyFirstMethod in MyFirstClass") 

这将提供结构你正在寻找。经过测试,如果你还没有使用的类在Python中,你可以多叫他们像你一样在C#做

x = MyNewClass() 
x.MyFirstMethod() 

享受

+0

这样的类使用比名称空间更类似于区域。 – winwaed

+1

不合理的解决方案。以django的模型为例。模型通常很胖,有大量的数据,并有很多方法可以处理这些数据。一旦模型达到合理的大小,将分区放置在靠近其方法的位置是个不错的主意。使用折叠标签突出显示区域是一个完美的使用。现在,我可以快速确定应该在哪里放置新的状态管理方法,支付信息等方面的新方法。 –

+0

即使使用静态或类方法,您也必须键入更多以使用方法或属性实例你将不得不初始化类。那么为了在地区组织班级,你将不得不处理两个班级? – Dmitriy

8

随着Python Tools for Visual Studio可以使用因为Python 2.6

工作:

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

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

2

在崇高的文本3,你可以简单地输入一个注释,缩进代码,就好像是在注释,然后你可以把它折叠就像C#

# Region 
    (some code here...) 
1

是的,你可以在同样的方式,因为我们没有在C#中,但请记住,这是pycharm IDE 例如

#region Description 
... 
#endregion 

参考here

-1

为了保持PyCharm从抱怨PEP 8违规使用

#region Start Comment for region 
    your code here 
#endregion 
0

对不起,编辑器改变了我的文字 在PyCharm,防止PEP 8警告使用

# region region name here 

your code here 

# endregion 
+1

您应该编辑了原始答案,而不是发布新答案。你看到原始答案下面的“编辑”按钮吗? – ndmeiri