Python中的命名不唯一结果错误?

4 投票
1 回答
1103 浏览
提问于 2025-04-16 19:26

也许这个问题有点不寻常,但我想听听大家的看法。因为英语不是我的母语,所以我想请教一下别人的意见。

我想在Python中引发一个错误,但我不知道该怎么给它命名。

class AmbiguousResultError(Exception): pass
class NoResultFoundError(Exception): pass

def getUrlFor(mystring):
    list_of_urls = []
    # parse url object for all matching urls for the given string
    # and add them to list_of_urls
    if len(url) > 1:
        raise AmbiguousResultError("More then one url matches for {0}".format(mystring))
    elif not url:
        raise NoResultFoundError("There was no matching url for {0}".format(mystring))
    else:
        return list_of_urls[0]

我在想第一个raise的命名,怎样才能让它更准确。我考虑过以下几个名字:

  1. NoUniqueResultFoundError(没有找到唯一结果的错误)
  2. AmbiguousResultError(结果模糊的错误)
  3. UncertainResultError(结果不确定的错误)

但这些名字都让我不太满意,我不知道这样的命名是否合适。这个名字应该让别人也能明白。一定有一个更准确的表达方式。那是什么呢?我曾考虑在english.stackexchange.com上问这个问题,但我觉得程序员的思维方式和语言学家不太一样。

1 个回答

4

我更喜欢用 AmbiguousStringError 而不是 AmbiguousResultError。毕竟,问题不在于结果有多重含义,而是用户提供的字符串。

或者可以用 MultipleResultsFoundError。我觉得你提的 NoUniqueResultFoundError 也不错。如果你在其他代码上也能像对待这个问题一样细致周到,其他开发者在调试的时候就不会遇到问题。

撰写回答