【发布时间】:2015-05-28 13:51:39
【问题描述】:
我有这三个函数,我觉得重复所有相同的代码很难看,这根本不是 DRY。 同时,我不确定如何重构这些函数以保持清晰的表达。 有什么推荐的吗?
谢谢
def download_loc(instance, filename):
username = instance.username_or_anonymous()
slug = instance.slug
filename_with_timestamp = filename_timestamped(instance, filename)
return "%s/%s/stl/%s" % (username, slug, filename_with_timestamp)
def preview_loc(instance, filename):
username = instance.username_or_anonymous()
slug = instance.slug
filename_with_timestamp = filename_timestamped(instance, filename)
return "%s/%s/preview/%s" % (username, slug, filename_with_timestamp)
def screenshot_loc(instance, filename):
username = instance.username_or_anonymous()
slug = instance.slug
filename_with_timestamp = filename_timestamped(instance, filename)
return "%s/%s/screenshot/%s" % (username, slug, filename_with_timestamp)
【问题讨论】:
-
您将类型(stl、预览和屏幕截图)设为另一个参数并具有一个功能
-
看相同的,看不同的,各自封装。
标签: python design-patterns refactoring