如何构造方法名称以与实例化类一起使用?我试图在课堂上运行一种方法' jsonmaker'其中该方法对应于filein字符串中指定的数据类型。
for filein in filein_list:
datatype = filein[(filein.find('_')):-8]
method_name = pjoin(datatype + 'populate')
instantiated_class.method_name(arg1, arg2, arg3)
当我尝试上面的代码时,我收到错误消息
'AttributeError: 'jsonmaker' object has no attribute 'method_name''
jsonmaker中实际上有一个匹配pjoin的方法(数据类型+' populate')所以如何告诉类识别它?对不起,如果我没有解释好这个。
答案 0 :(得分:2)
您不能通过将变量直接放在点引用后面来引用类实例的属性。甚至当变量引用与属性名称相同的字符串时也是如此。
您可以使用getattr
从字符串中获取method
,然后使用这些参数调用它:
getattr(instantiated_class, method_name)(arg1, arg2, arg3)