The standard way to pass on all arguments is as @JohnColeman suggested in a comment:
class ClassWithPrintFunctionAndReallyBadName:
...
def print(self, *args, **kwargs):
if self.condition:
print(*args, **kwargs)
As parameters, *args
receives a tuple of the non-keyword (positional) arguments, and **kwargs
is a dictionary of the keyword arguments.
When calling a function with *
and **
, the former tuple is expanded as if the parameters were passed separately and the latter dictionary is expanded as if they were keyword parameters.