python中self的动态引用属性

python中self的动态引用属性,python,django,Python,Django,我目前在python(django)函数中有一系列语言检查: def __get__(self, instance, owner): if translation.get_language() == 'fr': trans_field = getattr(instance, self.fr_field) else: return getattr(instance, self.en_field) 我要做的是在循环中运行: for language in language

我目前在python(django)函数中有一系列语言检查:

def __get__(self, instance, owner):

  if translation.get_language() == 'fr':
    trans_field = getattr(instance, self.fr_field)
  else:
    return getattr(instance, self.en_field)
我要做的是在循环中运行:

for language in languages:
  if translation.get_language() == language:
    return getattr(instance, self.[language]_field)
  else:
    return getattr(instance, self.en_field)

我该怎么做?显然,
self.[language]\u字段
是伪代码

您已经有了解决方案。使用getattr
getattr(实例,getattr(self,language+''u field'))

您已经有了解决方案。使用getattr
getattr(实例,getattr(self,language+''u field'))
第二次使用
getattr

return getattr(instance, gettattr(self, '{}_field'.format(language))

再次使用
getattr

return getattr(instance, gettattr(self, '{}_field'.format(language))

谢谢是否有一种方法也可以在init函数中分配此变量,即
def uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?现在我也在静态地声明它们:
self.en_field=en_field
self.fr_field=fr_field
您可以使用
setattr
,谢谢!是否有一种方法也可以在init函数中分配此变量,即
def uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?现在我也在静态地声明它们:
self.en_field=en_field
self.fr_field=fr_field
您可以使用
setattr