Python 重载运算符 “<<“ 实现 C++中的 “cout <<“ 进行打印

在阅读相关书籍时,偶尔注意到的,效果图如下:

 

觉得挺好玩的就把代码发出来,分享一下。

事先说明,代码是《Python CookBook (第二版)》第2.13节中的内容,

作者是 Eirk Max Francis

使用方法如下:

1.新建一个叫 lshift.py 的文件 ,写入以下代码:

class IOManipulator(object):

    def __init__(self,function=None) -> None:

        self.function = function

    def do(self,output):

        self.function(output)

def do_endl(stream):

    stream.output.write('\n')

    stream.output.flush()

endl = IOManipulator(do_endl)

class OStream(object):

    def __init__(self,output=None) -> None:

        if output is None:

            import sys

            output =sys.stdout

        self.output =output

        self.format= '%s'

    def __lshift__(self,thing):

        if isinstance(thing,IOManipulator):

            thing.do(self)

        else:

            self.output.write(self.format % thing)

            self.format = '%s'

        return self

cout =OStream()

2. 在你的自己新建的py文件中,引入from lshift import endl,cout 这样一句话,这样就可以正常使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值