Convenzione per scrivere Python senza newline o spazi bianchi?

3

Esiste una convenzione per scrivere Python quando viene privato di newline e spazi bianchi? Ad esempio, commenti di stackexchange, Twitter, messaggi di testo ...

    
posta Steve Bennett 28.06.2012 - 07:44
fonte

3 risposte

5

Risposta breve: No, non esiste tale convenzione.

La soluzione tipica sarebbe quella di utilizzare un servizio pastebin e collegarti a snippet lì.

Ci sono diversi servizi per questo. Potresti controllare questo link: link

    
risposta data 28.06.2012 - 10:47
fonte
1

Python consente di utilizzare il punto e virgola per separare le istruzioni. Per quanto riguarda la struttura di controllo, è un po 'più difficile. Alcuni progetti utilizzano la parola chiave pass (un no-op) per indicare la fine di un blocco:

if foo==1:foo=2;pass;  if foo==3:foo=4;pass;

Tuttavia non è particolarmente leggibile e l'interprete ti prenderà in giro solo se lo provi per davvero, quindi non è una soluzione generale.

    
risposta data 03.07.2012 - 20:26
fonte
0

È possibile in Python; soprattutto, hai ancora bisogno di caratteri spaziali. È pratico? neanche lontanamente.

Esiste una pratica simile a una cattiva forma di programmazione funzionale che dopo averlo provato per un po 'dirai "Che spreco di tempo". Tuttavia, con questo stile, è necessario utilizzare il rientro per farlo funzionare, a meno che non si definiscano le funzioni in una stringa eval (o un'altra funzione) come questa eval ('def myfunc (obj): \ n \ t # fare roba \ n \ treturn obj \ n '). Spara te stesso ora.

myobject = SomeClass()

def compile(obj): # use any function name
    # do stuff
    return obj

def parse(obj): # use any function name
    # do stuff
    return obj

def transpose(obj): # use any function name
    # do stuff
    return obj

# here is the nonwhite space thing you want
myobject=compile(myobject).parse(myobject).tanspose(myobject)

Potresti inserire ciascuna di queste funzioni in una classe come metodi. Volevo mostrare che se dovessi andare in "Non posso usare le nuove righe" le cose che ogni funzione ti chiama dovranno restituire l'oggetto che hai dato in modo da poter concatenare le tue "operazioni" con un punto invece di qualche altro metodo.

Se le tue funzioni / metodi sono piccoli potresti usare lambda. Qualcosa di male come: myobject = (lambda obj: obj.add (5)) (mioobject). (lambda obj: obj.callfunc (func, (args)) (mioobject)

Sappi che queste cose non sono affatto Pythonic. E potresti anche farli in un altro linguaggio di programmazione. Ho sempre sentito che la principale risorsa di Python è la leggibilità, causata da spazi bianchi e mancanza di caratteri non alfanumerici estranei come () {} []:; # etc.

    
risposta data 03.07.2012 - 18:27
fonte

Leggi altre domande sui tag