`inspect.getargspec` doesn't get you the whole way there, because it doesn't distinguish between methods and functions (it will give a count that is one too high with a method), so you'd still end up doing some of this.  But I agree, it's probably more future-proof to use `inspect`...