Terjemahkan halaman ini

Exiting Function Earlier

Programs with nested if conditions like this are very hard to understand:

def can_publish(post, user):
    if user:
        if user.is_active:
            if post.owner == user:
                return True
            else:
                return False
        else:
            return False
    else:
        return False

Solution

Exit from the function immediately if encountering any of the negative conditions:

def can_publish(post, user):
    if not user:
        return False

    if not user.is_active:
        return False

    if post.owner != user:
        return False

    return True

Takeaways

Program can be simplified by keeping the flow flat. Avoid nested conditions whenever possible.