为了账号安全,请及时绑定邮箱和手机立即绑定

重载打印python

重载打印python

蓝山帝景 2019-11-19 14:56:37
我可以重载该print函数并从内部调用普通函数吗?我想做的是在我要print呼叫的特定行之后print,它将呼叫普通行print并将副本写入文件。我也不知道如何超载print。我不知道如何做变长参数。我会尽快查找,但是 重载print python告诉我我不能print在2.x中重载,这是我正在使用的。
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

对于那些回顾了先前的答案的人,从版本“ Python 2.6”开始,对于原始张贴者的问题有了新的答案。


在Python 2.6及更高版本中,您可以禁用print语句,而使用print函数,然后使用自己的print函数覆盖print函数:


from __future__ import print_function

# This must be the first statement before other statements.

# You may only put a quoted or triple quoted string, 

# Python comments, other future statements, or blank lines before the __future__ line.


try:

    import __builtin__

except ImportError:

    # Python 3

    import builtins as __builtin__


def print(*args, **kwargs):

    """My custom print() function."""

    # Adding new arguments to the print function signature 

    # is probably a bad idea.

    # Instead consider testing if custom argument keywords

    # are present in kwargs

    __builtin__.print('My overridden print() function!')

    return __builtin__.print(*args, **kwargs)

当然,您现在需要考虑此打印功能仅在模块范围内。您可以选择覆盖__builtin__.print,但是您需要保存原始文件__builtin__.print; 可能与__builtin__名称空间混为一谈。


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 1027 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信