【发布时间】:2017-07-02 03:13:53
【问题描述】:
在下面的示例中,我必须在 ReturnValue 类中显式定义所有 'resolve' 方法。
如果我可以在循环中自动定义这些方法会更简洁,因为它们几乎都做同样的事情,唯一的区别是方法的名称与类成员变量的名称匹配返回。
这可以在 Python 2.7 中实现吗?
import graphene
class ApiObj(object):
@staticmethod
def get_values_as_dictionary():
return {'dog': 'pound', 'cat': 'nip', 'horse': 'fly', 'bear': 'down'}
class ReturnKeys(graphene.Interface):
dog = graphene.String()
cat = graphene.String()
horse = graphene.String()
bear = graphene.String()
class ReturnValue(graphene.ObjectType):
class Meta:
interfaces = (ReturnKeys,)
def resolve_dog(self):
return self.dog
def resolve_cat(self):
return self.cat
def resolve_horse(self):
return self.horse
def resolve_bear(self):
return self.bear
api = ApiObj()
value_dict = api.get_values_as_dictionary()
rv = ReturnValue(**value_dict)
print rv.resolve_cat()
print rv.resolve_dog()
print rv.resolve_horse()
print rv.resolve_bear()
【问题讨论】:
标签: python python-2.7 class oop dynamic