Truthy/falsy in Python def truthy(v):
    if issubclass(v.__class__, numbers.Number):
        return bool(int(v))
    if isinstance(v, basestring):
        vl = v.lower()[0]
        if vl == 'y' or vl == 't':
            return True
    return False



Is there some type/class I missed that can be evaluated by Python as True/False that I missed here?
Drawbacks? Better ways?
How about:

accepted_truthy_characters = {'y', 't'}

def truthy(value):
    if isinstance(value, basestring):
        return value and value[0].lower() in accepted_truthy_characters
    return bool(value)


In Python 3.x, basestring won't work and you'll need isinstance(value, str) instead.

One thing you missed is that value might be a string, but it might be empty, which would leave you with an IndexError.

Python's bool() will check an int for you, so I don't think you need to check if it's a Number, convert it with int(), and then bool(), unless I'm missing something about your use case.

Out of curiosity, why do you need this? Are you checking user input? Won't that always be a string anyway? And in that case, wouldn't it be better to just check a few allowed "positive" strings?