I\'m using argspec in a function that takes another function or method as the argument, and returns a tuple like this:
((\"arg1\", obj1), (\"arg2\", obj2), .
There isn't any reason to not use such sentinel objects for such purposes. As an alternative to a class object, you could also create a singleton instance of a dynamically created type:
NoDefault = type('NoDefault', (object,), {
'__str__': lambda s: 'NoDefault', '__repr__': lambda s: 'NoDefault'})()