有没有办法将Python代码中的缩进转换为大括号?

  • 回答 (2)
  • 关注 (0)
  • 查看 (79)

我是一个想学习Python的入门程序员。但代码块是用不同的缩进级别表示的。我想知道是否有可用的工具可以让我使用大括号或其他代码块分隔符编写代码,然后将该格式转换为Python可以使用的适当缩进表示?

jackymaplejackymaple提问于
以往V回答于
已采纳

你的问题有一个解决方案,它是用python本身分发的。pindent.py,它位于windows install中的Tools\Script目录中(我的路径是C:\Python 25\tools\Script),如果你在Linux或OSX上运行,那么你应该可以从svn.python.org获取它。

当块被关闭时,它会添加注释,或者在注释时,它可以正确地缩进代码。下面是一个示例,该代码是通过使用命令进行定位输出的:

pindent -c myfile.py

def foobar(a, b):
   if a == b:
       a = a+1
   elif a < b:
       b = b-1
       if b > a: a = a-1
       # end if
   else:
       print 'oops!'
   # end if
# end def foobar

原文myfile.py是:

def foobar(a, b):
   if a == b:
       a = a+1
   elif a < b:
       b = b-1
       if b > a: a = a-1
   else:
       print 'oops!'

你也可以使用pindent.py -d根据注释插入正确的缩进(查看pindent.py的标题以获得详细信息),这应该允许你在python中编写代码,而不必担心缩进。

袁弋雯只有你回答于

Python支持用于定义代码块的大括号,还支持使用‘BEGIN’和‘End’标记。

请参阅以下代码示例:

class MyClass(object): #{
    def myfunction(self, arg1, arg2): #{
        for i in range(arg1): #{ 
            print i
        #}
    #}
#}

还有一个带有bash风格的例子:

fi = endclass = enddef = endclass = done = None
class MyClass(object):
    def myfunction(self, arg1, arg2):
        for i in range(arg1): #do
            if i > 5: #then
                print i
            fi
        done
    enddef
endclass

这方面最好的一点是,你可以忘记在其中放置一个近距括号,而它仍然是有效的python!

class MyClass(object): #{
    def myfunction(self, arg1, arg2): #{
        for i in range(arg1): #{ 
            print i
        # whoops, forgot to close that bracket!
    #}
#}

扫码关注云+社区

领取腾讯云代金券