我有这样的变量对
KEY_PasswordExpiryFeature = "PasswordExpiryFeature"
KEY_PasswordExpiryFeature_DEFAULT = "FALSE"
我有一些我必须指定两个变量的方法。 但是,为了使我免于笨拙地打字,我只想指定第一个变量
KEY_PasswordExpiryFeature = "PasswordExpiryFeature"
并在接收方法中执行此操作
def evaluate(et, key):
print("Evaluating key: %s -> Passed: %s" % (getKeyAttribute(et, key), getValueAttribute(et, key).lower() != VALUEOFVARIABLE("KEY_" + key + "_DEFAULT")))
代替此
def evaluate(et, key, default_value):
print("Evaluating key: %s -> Passed: %s" % (getKeyAttribute(et, key), getValueAttribute(et, key).lower() != default_value))
答案 0 :(得分:1)
而不是传递原始变量。您可能希望将变量对封装到其他对象中。两种常见的选择是字典或命名元组。例如:
KEY_PasswordExpiry = {
"feature": "PasswordExpiryFeature",
"default": False
}
或
from collections import namedtuple
Key = namedtuple("Key", ["feature", "default"])
PasswordExpiry = Key(feature="PasswordExpiryFeature", default=False)
在namedtuple
情况下,您可以使用点符号访问feature
键的default
和PasswordExpiry
值。
>>> PasswordExpiry.feature
'PasswordExpiryFeature'
>>> PasswordExpiry.default
False