Ich habe eine sehr böse Stück Code, den ich gerne umgestalten würde, aber ich habe, weil es total unlesbar wird.Wie kann ich die Lesbarkeit von verschachtelten if und für Aussagen verbessern
for region in feed['config']['regions']:
if region['region'] == region_name:
for instance_type in region['instanceTypes']:
if instance_type['type'] == instance_type_name:
for instance_size in instance_type['sizes']:
if instance_size['size'] == instance_size_name:
for platform in instance_size['valueColumns']:
if platform['name'] == platform_name:
prices = platform['prices']
assert prices.keys() == ['USD']
return decimal.Decimal(prices['USD'])
assert False, "Failed to determine price for instance with region=%r, type=%r, size=%r, platform=%r" % \
(region_name, instance_type_name, instance_size_name, platform_name)
Ich habe gelernt über Funktionen mit jeder Schleife oder if-Anweisung, aber das wird mir eine Menge von Funktionen geben. Gibt es bessere Lösungen?
Funktionen verwenden, so y ou haben nicht mehr als 2 verschachtelte for-loops gilt allgemein als guter Stil. "Eine Ladung von Funktionen" ist eine gute Sache (tm), besonders wenn Sie Docstrings verwenden, um sie zu dokumentieren :-) – thebjorn
@thebjorn sollte Ihr Kommentar eine Antwort sein –