我想要一个可以创建其子类的类,该类具有仅在特定条件下打印的打印功能。
这基本上是我正在尝试做的事情:
class ClassWithPrintFunctionAndReallyBadName:
...
def print(self, *args):
if self.condition:
print(*args)
这已经有效,除了必须使用默认 print
函数明确声明的参数,例如 end
(示例: print('Hello, world!', end='')
)。我怎样才能让我的新班级的 print
函数接受诸如 end=''
之类的参数并将它们传递给默认值 print
?
原文由 Neithan 发布,翻译遵循 CC BY-SA 4.0 许可协议
传递所有参数的标准方法是@JohnColeman 在评论中建议的那样:
作为参数,
*args
接收非关键字(位置)参数的元组,而**kwargs
是关键字参数的字典。当使用
*
和**
调用一个函数时,前者的元组被展开,就好像参数是单独传递的,而后者的字典被展开,就好像它们是关键字参数一样。