构造方法名称

时间:2016-07-21 17:57:37

标签: python class methods

如何构造方法名称以与实例化类一起使用?我试图在课堂上运行一种方法' 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')所以如何告诉类识别它?对不起,如果我没有解释好这个。

1 个答案:

答案 0 :(得分:2)

您不能通过将变量直接放在点引用后面来引用类实例的属性。甚至当变量引用与属性名称相同的字符串时也是如此。

您可以使用getattr从字符串中获取method,然后使用这些参数调用它:

getattr(instantiated_class, method_name)(arg1, arg2, arg3)