** Hinweise zu effektivem Python ** Punkt 4: Schreiben Sie Hilfsfunktionen anstelle komplexer Ausdrücke
** Schreiben Sie eine Hilfsfunktion, da das Schreiben eines komplizierten Ausdrucks in einem einzelnen Satz die Lesbarkeit beeinträchtigt ** Wenn Sie Lust dazu haben, fügt Python eine enorme Menge an Syntax in einen Satz ein, aber das Lesen wird sehr schwierig. Daher sollten Sie eine Hilfsfunktion bereitstellen, um die Lesbarkeit zu verbessern.
#Fragen Sie nach Argumenten aus der URL-Abfrage
from urllib.parse import parse_qs
my_values = parse_qs('red=5&blue=0&green=',
keep_blank_values=True)
print('red: ', my_values.get('red'))
print('green: ', my_values.get('green'))
print('opacity: ', my_values.get('opacity'))
>>>
red: ['5']
green: ['']
opacity: None
⇒ Wenn es keinen Wert gibt, ist es besser, auf Null zu vereinheitlichen
#Vergleichen Sie vor und nach dem Ausdruck mit dem Operator oder
red = my_values.get('red', [''])[0] or 0
green = my_values.get('green', [''])[0] or 0
opacity = my_values.get('opacity', [''])[0] or 0
print('red: %r' % red)
print('green %r' % green)
print('opacity %r' % opacity)
>>>
red: '5'
green 0
opacity 0
Ich konnte es schaffen, aber es ist schwer zu sehen. .. .. Darüber hinaus gibt es Fälle, in denen Sie Zahlen mit mathematischen Formeln anstelle von Zeichenfolgen verarbeiten möchten. Also lasst es uns mit int () umschließen!
red = int(my_values.get('red', [''])[0] or 0)
print('red: %r' % red)
>>>
red: 5
Es ist ziemlich schwer zu sehen. Nicht viele Menschen können es auf einen Blick verstehen. Sie müssen überhaupt nicht so viel in eine Zeile passen.
Lassen Sie uns den Zustand leicht mit if / else beurteilen
red = my_values.get('red', [''])
red = int(red[0]) if red[0] else 0
print('red: %r' % red)
>>>
red: 5
Es ist ein wenig ordentlich, aber die Beschreibung der if-Anweisung ist nicht schön Wenn Sie es mit einer strengen if-Anweisung schreiben
red = my_values.get('red', [''])
if red[0]:
red = int(red[0])
else:
red = 0
print('red: %r' % red)
>>>
red: 5
Es wird übertragen, aber es ist schwer wieder zu sehen.
def get_first_int(values, key, default=0):
found = values.get(key,[''])
if found[0]:
found = int(found[0])
else:
found = default
return found
red = get_first_int(my_values, 'red')
print('red: %r' % red)
>>>
red: 5
Python hat viele nützliche Beschreibungen, aber wenn Sie es zu oft verwenden, bleibt es lesbar. Schreiben Sie je nach Situation viele Hilfsfunktionen.
Recommended Posts