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

我在python中有一个类,我想根据像这样的字符串来获取几个属性之一:


class my_class:

    def __init__(self):

        self.att1=1

        self.att2=2

        self.att3=3


    def getatt (self, number):

        return self.att(number)

我怎样才能做到这一点?


MMTTMM
浏览 406回答 2
2回答

喵喔喔

def getatt(self, number):    return getattr(self, 'att%d' % number)或采用新的样式格式:def getatt(self, number):    return getattr(self, 'att{}'.format(number))还要注意,如果您具有许多这些属性,则可能应该考虑存储列表并从它们的索引中检索元素。

倚天杖

我会做类似的事情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)(未试)这样,您可以访问捆绑的数据以及必要时的属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python