EasyPython

Encapsulate Conditionals

PythonClean CodeReadabilityRefactoring

Complex boolean expressions in if statements hide intent.

# dirty — what does this check?
def solve(user):
    if user['age'] >= 18 and user['is_active'] and not user['is_banned'] and user['email_verified']:
        return 'eligible'
    return 'not-eligible'

Refactor by extracting the condition into a named predicate is_eligible(user).
solve(user, 'is_eligible')True/False · solve(user, 'get_status')'eligible'/'not-eligible'

Sample tests

Test #1Valid user is eligible
Input: [{"age":20,"is_active":true,"is_banned":false,"email_verified":true},"is_eligible"]
Output: true
Test #2Under 18 not eligible
Input: [{"age":16,"is_active":true,"is_banned":false,"email_verified":true},"is_eligible"]
Output: false
Test #3get_status returns eligible
Input: [{"age":20,"is_active":true,"is_banned":false,"email_verified":true},"get_status"]
Output: "eligible"