【发布时间】:2017-01-22 23:09:31
【问题描述】:
我有一个有很多默认值的类,因为我不能重载函数。有没有比拥有多个默认参数或使用 kwargs 更好的方法?
我曾考虑将字典传递给我的班级,但我如何控制是否传递必要的参数?
如果有更 Python 的方式来允许参数而不将它们全部定义为默认值?
例如,我允许许多默认值:
class Editor:
def __init__(self,
ffmpeg: str,
font_file=None,
font_size=148,
font_color="white",
title_length=5,
title_x="(w-text_w)/2",
title_y="(h-text_h)/2",
box=1,
box_color="black",
box_opacity=0.5,
box_border_width=25):
self.ffmpeg = ffmpeg
self.title s= define_title(
font_file, font_size, font_color, title_length)
self.box = define_box(
box, box_color, box_opacity, box_border_width},
self.coordinates = {"x": title_x, "y": title_y}
在其他语言中,我可能会重载构造函数。
【问题讨论】:
-
你能把它分解成子对象吗?例如一个
box对象,它只需要最后 4 个参数。然后你只需将box传递给Editor。
标签: python class constructor default-arguments