Numbers, Strings, Containers

Guidance

  • Replace repeated magic literals with named constants or enums.
  • Prefer sets or dicts for membership checks.
  • Use lazy iterables when possible to avoid large allocations.

Bad Example

def mark_trip_as_featured(trip):
    if trip.source == 11:
        do_some_thing(trip)
    elif trip.source == 12:
        do_some_other_thing(trip)
    return

Good Example

from enum import IntEnum

class TripSource(IntEnum):
    FROM_WEBSITE = 11
    FROM_IOS_CLIENT = 12


def mark_trip_as_featured(trip):
    if trip.source == TripSource.FROM_WEBSITE:
        do_some_thing(trip)
    elif trip.source == TripSource.FROM_IOS_CLIENT:
        do_some_other_thing(trip)
    return

Bad Example

VALID_NAMES = ["piglei", "raymond", "bojack", "caroline"]

def validate_name(name):
    if name not in VALID_NAMES:
        raise ValueError(f"{name} is not a valid name!")

Good Example

VALID_NAMES = ["piglei", "raymond", "bojack", "caroline"]
VALID_NAMES_SET = set(VALID_NAMES)

def validate_name(name):
    if name not in VALID_NAMES_SET:
        raise ValueError(f"{name} is not a valid name!")

Sources & References