我可以通过连接变量名来使用预定义变量吗?

2024-04-16 12:57:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的变量对

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))

Tags: 方法keydefaultdefloweretprintevaluate
1条回答
网友
1楼 · 发布于 2024-04-16 12:57:00

而不是传递原始变量。您可能希望将变量对封装到其他对象中。两个常见的选项是字典或命名元组。例如:

KEY_PasswordExpiry = {
    "feature": "PasswordExpiryFeature",
    "default": False
}

from collections import namedtuple

Key = namedtuple("Key", ["feature", "default"])

PasswordExpiry = Key(feature="PasswordExpiryFeature", default=False)

namedtuple情况下,您可以使用点表示法访问feature键的featuredefault

>>> PasswordExpiry.feature
'PasswordExpiryFeature'
>>> PasswordExpiry.default
False

相关问题 更多 >