我在 python 中有一个类,我想根据这样的字符串获取几个属性之一:
class my_class:
def __init__(self):
self.att1=1
self.att2=2
self.att3=3
def getatt (self, number):
return self.att(number)
我怎样才能做到这一点?
我在 python 中有一个类,我想根据这样的字符串获取几个属性之一:
class my_class:
def __init__(self):
self.att1=1
self.att2=2
self.att3=3
def getatt (self, number):
return self.att(number)
我怎样才能做到这一点?
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)
(未经测试)
有了这个,您可以访问捆绑的数据以及需要的属性。