【发布时间】:2022-01-12 12:27:56
【问题描述】:
我有一个函数(这里称为analyze_data),它接受一个对象和一个字符串作为输入,并使用该字符串通过getattr“提取”数据。当数据处于“第一”级别的属性 (data1) 时,这可以正常工作。但是,我不知道当它们处于较低级别时我可以传递给函数以访问数据 (data2)。传递点分字符串(如下图)不起作用。
class a:
pass
instance1 = a()
# Create 1st data set
instance1.data1 = [1,2,3]
# Create 2nd data set
instance1.subdata = a()
instance1.subdata.data2 = [4,5,6]
def analyze_data(myvar, dataname):
data = getattr(myvar, dataname)
# Do something with data, e.g.:
print(str(data[0]))
analyze_data(instance1, 'data1')
analyze_data(instance1, 'subdata.data2')
在不过多更改现有功能analyze_data 的情况下访问data2 的最佳方式是什么?
【问题讨论】:
标签: python object attributes getattr