Using the inspect module you can do what you want. Define a function srn:
import inspect
def srn(expr):
    """Sets the results name to the variable *name* of `expr`"""
    cf = inspect.currentframe()
    of = inspect.getouterframes(cf)[1]
    fs = inspect.getframeinfo(of[0]).code_context[0].strip()
    # name of FIRST parameter
    try:
        args = fs[fs.find('(') + 1:-1].split(',')
        n = args[0]
        if n.find('=') != -1:
            name = n.split('=')[1].strip()
        else:
            name = n
        expr.resultsName = name
    except IndexError:
        pass
    return expr
Then after my_number = Word(nums) call:
srn(my_number)
and my_number contains "my_number" as resultsName.
Disclaimer 1: This approach works well, but is quite hacky and dives deep into the Python internals, so do it at your own risk.
Disclaimer 2: The idea for this is not mine - I got it somewhere from StackOverflow but I don't now exactly where...