我注意到Python经常使用字符串,你可以使用某种定义的符号,比如常量。例如,从argparse
:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
开发人员为什么不定义类似常量的符号,而不是要求使用字符串'store_const'
。 ArgumentParser.STORE_CONST
?
我更喜欢常量,因为代码编辑器可以在模块中轻松查看它们并将它们用作代码完成的建议。此外,字符串中的拼写错误可能不会导致错误,但定义符号中的拼写错误可能会导致错误。我已经在Python中看到过使用这种方式的字符串中的几个例子,但它在其他语言中并不常见,例如Java或PHP。
答案 0 :(得分:1)
许多库都使用“常量”......包括argparse
您可以轻松传入argparse._StoreConstAction
它还提供以下命名常量
SUPPRESS = '==SUPPRESS=='
OPTIONAL = '?'
ZERO_OR_MORE = '*'
ONE_OR_MORE = '+'
PARSER = 'A...'
REMAINDER = '...'
_UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args'
另一种选择是编写自己的常量类,其中包含所有困扰你的魔法数字和/或字符串