PEP8 - 80个字符 - 大整数

时间:2010-01-12 00:45:20

标签: python coding-style pep8

这与question about big strings and PEP8有某种关系。

如何使我的脚本具有符合PEP8的以下行(“最大行长度”规则)?

pub_key = {
   'e': 3226833362680126101036263622033066816222202666130162062116461326212012222403311326222666622610430466620224662364142L,
   'n': 226421003861041248462826226103022608220328242204422684232640331238220232226321616266146243302342688266846281802662666622213868114632268211186223606846623310006662260110460620201618186828411322260686632603226636226662262862212140221422102106336342228236361106240226122644614266186283436228208626640846820224661642086022346422443282224682686612228404266842316822624342226666622264826123822122031361242246432886612624262663222232331438863220022020826266366016100422L
}

6 个答案:

答案 0 :(得分:22)

  

但最重要的是:知道什么时候成为   不一致 - 有时是风格   指南只是不适用。什么时候进去   怀疑,用你最好的判断。

source

在这种情况下,我会按原样保留大整数。

答案 1 :(得分:5)

'e': 3226833362680126101036263622033066816222202666130162062116461326212012L \
     * 10**45 \
     + 222403311326222666622610430466620224662364142L

我绝不赞同这一点。

答案 2 :(得分:5)

我能想到的最佳方式是

pub_key = {
   'e': long('3226833362680126101036263622033066816222202666130162062116461326'
             '212012222403311326222666622610430466620224662364142'),
   'n': long('2264210038610412484628262261030226082203282422044226842326403312'
             '3822023222632161626614624330234268826684628180266266662221386811'
             '4632268211186223606846623310006662260110460620201618186828411322'
             '2606866326032266362266622628622121402214221021063363422282363611'
             '0624022612264461426618628343622820862664084682022466164208602234'
             '6422443282224682686612228404266842316822624342226666622264826123'
             '8221220313612422464328866126242626632222323314388632200220208262'
             '66366016100422'),
}

恰好是80个字符。

答案 3 :(得分:2)

我认为你不能。 PEP8中的指南是指导原则,有些情况下无法遵循指南。

答案 4 :(得分:2)

导入此

  

...   特殊情况不足以打破规则。   虽然实用性胜过纯洁。   ...

答案 5 :(得分:1)

这可以做到。通过在括号中包装表达式,可以在多行中分割长行。这是解释的地方:

http://www.python.org/dev/peps/pep-0008/