Se non vuoi from __future__ import print_function, puoi fare quanto segue:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Che stampa:
100 see no new line
Se non sei avverso from __future__ import print_functiono stai usando Python 3 o versioni successive:
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
L'aggiunta dell'altro è l'unica modifica che è necessario apportare per rendere sintatticamente corretto il codice, è necessario l'altro per l'espressione condizionale ("in linea se altri blocchi")
Il motivo per cui non ho usato Noneo 0come altri nel thread hanno usato, è perché l'uso None/0causerebbe il programma print Noneo print 0nei casi in cui si btrova False.
Se vuoi leggere su questo argomento ho incluso un link alle note di rilascio per la patch che questa funzionalità è stata aggiunta a Python.
Il 'modello' sopra è molto simile al modello mostrato in PEP 308:
Questa sintassi può sembrare strana e arretrata; perché la condizione va nel mezzo dell'espressione, e non in primo piano come in C's c? x: y? La decisione è stata verificata applicando la nuova sintassi ai moduli nella libreria standard e vedendo come viene letto il codice risultante. In molti casi in cui viene utilizzata un'espressione condizionale, un valore sembra essere il "caso comune" e un valore è un "caso eccezionale", utilizzato solo in occasioni più rare quando la condizione non è soddisfatta. La sintassi condizionale rende questo modello un po 'più ovvio:
contents = ((doc + '\ n') if doc else '')
Quindi, nel complesso, penso che questo sia un modo ragionevole di approvarlo, ma non puoi discutere con la semplicità di:
if logging: print data