我正在开发一个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的绑定函数中使用默认参数?
答案 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