2011-12-10 7 views
0

Pythonでインデントを強制する方法はありますか? 私は、コードを整理して整理するために必要なのです。 例として:編成目的のためにPythonコードにインデントを強制する

# How it looks now 
class Bro: 
    def __init__(self): 
     self.head = 1 
     self.head.eye = 2 
     self.head.nose = 1 
     self.head.mouth = 1 
     self.neck = 1 
     self.torso = 1 

# How it'd look ideally (indenting sub-variables of 'head') 
class Bro: 
    def __init__(self): 
     self.head = 1 
      self.head.eye = 2 
      self.head.nose = 1 
      self.head.mouth = 1 
     self.neck = 1 
     self.torso = 1 

私はええ、回避策のいくつかの並べ替えでこれが可能であると想像?

+6

ちょうど誰もが....改行で作品を分離することにより、「整理」ん何よりも簡単ですその方法を明確に – g19fanatic

+0

そのまま、コード例は壊れています。 '__init__'メソッドは' self.head.eye'に値を割り当てようとしますが、 'self.head'に' eye'属性が割り当てられていない 'int'が割り当てられているのでエラーです。 – ekhumoro

答えて

0

は技術的には、はい、それは例えば、可能です。:

class Bro: 
    def __init__(self): 
     self.head = 1 
     if True: 
      self.head.eye = 2 
      self.head.nose = 1 
      self.head.mouth = 1 
     self.neck = 1 
     self.torso = 1 

それは限り可読性が行くように良いアイデアだかどうか、私はわかりません。私は個人的にはおそらくそれをしません。

P.S.おそらく、より良い読み込みをするためにwithステートメントを使用する(乱用する)可能性があります。 indentatinが解析Pythonのコードブロックのために使用されているので、あなたが何らかの形でグループにそれらをしたい場合は、次のことができない...単純にスタイリッシュの理由から、

を、そのようなインデントを作ることができない

2

次のように辞書を使用します。

class Bro: 
    def __init__(self): 
     self.head { 
      'head': 1, 
      'eye' : 2, 
      'nose' : 1, 
      'mouth' : 1, 
     } 
     self.neck = 1 
     self.torso = 1 

単にそれは良い方法ではありませんので、辞書内のすべての身体の部分を定義すること

class Bro: 
    def __init__(self): 
     self.body { 
      'head': { 
       'head': 1,#defining itself 
       'eye' : 2, 
       'nose' : 1, 
       'mouth' : 1, 
      }, 
      'neck' : 1, 
      'torso' : 1, 
     } 

優れています...はるか

は、より良い方法かもしれませんが、self.noseを書いて以来使用してその困難はself.head.noseまたはself.body['head']['nose']

関連する問題