2010-01-12 12 views
12

Esto está relacionado de alguna manera con question about big strings and PEP8.PEP8 - 80 caracteres - Entero grande

¿Cómo puedo hacer que mi secuencia de comandos tenga la siguiente línea que cumpla con PEP8 (regla de "Longitud máxima de línea")?

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

La notación científica? –

+0

@Anon: ¿Cómo? (Estoy siendo igualmente críptico!) –

+0

No estoy muy familiarizado con la sintaxis de Python, pero suponiendo que es posible realizar aritmética en esta declaración, sería algo así como '32268333626801261010362 * pow (10, however manyy)', y luego agregar más en cada sucesiva línea. –

Respuesta

22

Pero lo más importante: saber cuándo ser inconsistente - a veces el libro de estilo simplemente no se aplica. Cuando en duda, use su mejor juicio.

source

En este caso, simplemente me iría a los grandes números enteros como es.

+0

¡Hurra por usar nuestros cerebros! –

2

No creo que puedas. Las pautas en PEP8 son pautas, hay situaciones donde simplemente no es posible seguir las pautas.

2

importar este

... casos especiales no son lo suficientemente especial como para romper las reglas. Aunque la practicidad supera la pureza. ...

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

que en ningún caso aprueba esto.

5

mejor manera que puedo pensar es

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

exactamente 80 caracteres.

+3

Llamar y la función adicional solo para seguir una guía de estilo es exagerada en mi humilde opinión. Solución interesante sin embargo. – GmonC

Cuestiones relacionadas