绑定函数

时间:2016-05-26 06:22:45

标签: python

我正在开发一个python脚本,它将文本数据发送到zebra标签打印机。 有一个名为" zebra_line"的绑定函数。你必须填写x,y,文本和字体变量。

    zebra_line = "^FO{x},{y}^A0,N,{font}^FH^FD{text}^FS".format

    template = "^XA\n"
    template += "^CI28\n"
    template += zebra_line(x=30,y=350, text="Test", font=35)
    template += zebra_line(x=30,y=700, text="Test", font=35)

send_to_printer(template)

这很好但我的问题是使用font参数。我不想把它传给每一行,因为它几乎是一样的。

那么......是否可以在Python的绑定函数中使用默认参数?

3 个答案:

答案 0 :(得分:3)

是的,它不是现有的功能。您可以编写包装函数,也可以使用functools.partial()并为TextView提供默认参数:

font

如果未提供from functools import partial zebra_line = partial("^FO{x},{y}^A0,N,{font}^FH^FD{text}^FS".format, font=35) 关键字参数,则将使用默认值35:

font

答案 1 :(得分:1)

有可能。以下是为您执行此操作的代码:

from functools import partial

zebra_line = partial(zebra_line, font=35)

现在,您可以像这样致电zebra_line

zebra_line(x=30,y=700, text="Test")

答案 2 :(得分:0)

只需定义自己的包装函数即可。

(不确定是否会与命名参数和函数参数发生冲突,但是你明白了)

def my_zebra_line(x, y, text):
    zebra_line(x=x,y=y, text=text, font=35)

template += my_zebra_line(30,700, "Test")

虽然,我不确定为什么这不起作用(删除字体作为参数)

zebra_line = "^FO{x},{y}^A0,N,35^FH^FD{text}^FS".format