【问题标题】:What does the Backslash Operator do in Python and More?反斜杠运算符在 Python 中的作用是什么?
【发布时间】:2020-04-05 12:45:59
【问题描述】:

在这个link中,我找到了下面这行代码:

image = Image.open("testOCR3.png")\
        .convert('L').resize([3 * _ for _ in image.size], Image.BICUBIC)\
        .point(lambda p: p > 75 and p + 100)

不幸的是,我只是还不明白。

(i) \ 做什么?为什么要使用它?

(ii) 另外,根据documentation

Image.convert(mode=None, matrix=None, dither=None, palette=0, colors=256). 

那么为什么.convert().resize() 有效?

提前致谢!

【问题讨论】:

    标签: python python-tesseract image-preprocessing


    【解决方案1】:

    我不明白第二个问题是什么,但是第一个:

    my_str = "the backslash" \
             "operator let's you" \
             "split things across" \
             "lines" 
    

    碰巧我以前从未见过它用于拆分点符号,但是嘿,你学到了一些新东西。

    【讨论】:

      【解决方案2】:

      在 Python 中,语句在遇到新行时结束。反斜杠只是告诉 Python 解释器该语句在下一行继续。

      【讨论】:

        【解决方案3】:

        您发布的代码是将对象的多个方法链接在一起的示例。
        反斜杠只是告诉 python 解释器代码在下一行继续。 除了反斜杠,你还可以写:

        image = Image.open("testOCR3.png")
        image = image.convert('L').resize([3 * _ for _ in image.size], Image.BICUBIC)
        image = image.point(lambda p: p > 75 and p + 100)
        

        解释(也许也回答你的(ii)):
        第一个方法Image.open 返回一个图像对象(或实例),它也有类似.convert('L') 的方法。 convert 方法被执行并(可能)以某种形式进行转换并再次返回一个图像对象,该对象和以前一样具有自己的指定方法。

        根据您引用的文档,Image 对象的 .convert() 方法确实返回以下内容:

        返回类型:图片

        【讨论】:

        • 好的,谢谢你的代码行!作为一个新手,我被 \ 弄糊涂了。我想我现在可以自己回答 (ii),因为以下代码行也可以:image = image.convert('L') image = image.resize(...)跨度>
        • 反斜杠与链接方法调用完全无关!这是非常具有误导性的。
        • @deceze 提供的示例中的反斜杠有助于链接方法调用。它用于跨越链接超过 3 行代码的方法。
        • Jein。如果没有反斜杠,它将无法工作,但那是因为您最终会遇到语法错误。反斜杠只与语法有关,它对方法链没有任何贡献。您更新后的答案更容易接受。
        猜你喜欢
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 2019-01-28
        • 2018-07-19
        • 2016-03-12
        相关资源
        最近更新 更多