为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据python中的字符串获取类属性

如何根据python中的字符串获取类属性

MMTTMM 2021-03-17 13:19:44
我在python中有一个类,我想根据像这样的字符串来获取几个属性之一:class my_class:    def __init__(self):        self.att1=1        self.att2=2        self.att3=3    def getatt (self, number):        return self.att(number)我怎样才能做到这一点?
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

def getatt(self, number):

    return getattr(self, 'att%d' % number)

或采用新的样式格式:


def getatt(self, number):

    return getattr(self, 'att{}'.format(number))

还要注意,如果您具有许多这些属性,则可能应该考虑存储列表并从它们的索引中检索元素。


查看完整回答
反对 回复 2021-03-23
?
倚天杖

TA贡献1828条经验 获得超3个赞

我会做类似的事情


class My_Class:

    def __init__(self):

        self.att = {1: 1, 2: 2, 3: 3}

    def getatt(self, number):

        return self.att[number]

    def __getattr__(self, attname):

        if attname.startswith('att') and attname != 'att':

            try: num = int(attname[3:])

            except ValueError: pass

            else: return self.att[num]

        raise AttributeError(attname)

(未试)


这样,您可以访问捆绑的数据以及必要时的属性。


查看完整回答
反对 回复 2021-03-23
  • 2 回答
  • 0 关注
  • 405 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信