There is no problem with that whatsoever – self
is an object like any other and may be used in any context where object of its type/behavior would be welcome.
In Python, as exemplified by the standard library, instances of self
get passed to functions (and also to methods, and even operators) all the time.