Python - 将 class 属性分配给变量

Python - Assign class attribute to a variable

我正在做一个类似app的词典,根据翻译开关,屏幕显示翻译或原文 代码如下所示:

PS: "textFunction(text)" 只是一个在屏幕上显示文本的函数。 PS: "wordList" 是 Word Class 个实例的列表

class Word:
  def __init__(self, original, translation):
      self.original = original
      self.translation = translation

translation = False
if translation == False:
    wordDisplayed = .original
elif translation == True:
    wordDisplayed = .translation

textFunction(wordList[X].wordDisplayed)

但是,这不起作用。我该如何解决这个问题?

你会使用 getattr:

wordDisplayed = "translation" if translation else "original"
textFunction(getattr(wordList[X], wordDisplayed))

虽然“getattr”是一个可能的解决方案,但我想说向您的 class 添加一个 get 函数可以使这一切更具可读性和可维护性:

class Word:
    def __init__(self, original, translation):
        self.original = original
        self.translation = translation
    def get(self, translation):
        return self.translation if translation else self.original

words = [Word("hello", "hallo"), Word("world", "Welt")]

for w in words:
    print(w.get(False), w.get(True))

输出:

hello hallo
world Welt