2014-06-16 53 views
1

我必須在Python中聲明一些dict。我寫這樣的代碼:Python,PEP-8和多行字典格式化

class MegaClass(object): 
    _activation_grad_classes = \ 
    { 
     activation.ForwardStrictRELU: activation.BackwardStrictRELU, 
     activation.ForwardLog: activation.BackwardLog, 
     activation.ForwardSinCos: activation.BackwardSinCos 
    } 

並得到一個PEP-8錯誤:E122 continuation line missing indentation or outdented

我該如何解決?

回答

10

把大括號的賦值行:

_activation_grad_classes = { 
    activation.ForwardStrictRELU: activation.BackwardStrictRELU, 
    activation.ForwardLog: activation.BackwardLog, 
    activation.ForwardSinCos: activation.BackwardSinCos 
} 

很少是需要使用\逃脫Python中的換行;改爲使用{..},[..](..)跨多行對錶達式分組。

+1

我唯一使用'\'的時間是'multi_line_text ='''''以逃避第一個換行符,並且這裏的文檔中的文本會按照它的定義排列。 – dawg

+0

@dawg:的確,這是我唯一使用它的地方,也是因爲這使得第一行更加整齊。 –