Python中关于ImageDraw().text()脚本的问题

如图,请问在运行ImageDraw.ImageDraw().text()脚本的时候,为什么fonts部分必须用font=fnt去表达,而不能直接写fnt?

img


直接写fnt就会这样子报错。感谢解答!

img

text函数的定义如下。如果不指定key,直接传入font的话,值是默认按顺序传给fill的。
如果实在不想使用font=fnt,可以d.text((0,0), txt_log, None, fnt) 这样调用


    def text(
        self,
        xy,
        text,
        fill=None,
        font=None,
        anchor=None,
        spacing=4,
        align="left",
        direction=None,
        features=None,
        language=None,
        stroke_width=0,
        stroke_fill=None,
        embedded_color=False,
        *args,
        **kwargs,
    ):

ImageDraw.ImageDraw().text()函数的前两个参数xy和text是位置参数,所以你可以直接写xy和text的值。但是font参数是一个关键字参数,所以你需要写font=fnt来指定它的值。如果你只写fnt,会认为你是在传递第三个位置参数fill的值,而不是font参数的值