概述:本文主要描述了如何通过拼接字符串进行动态函数调用。
之前一直想找个方法通过传参进行函数的动态调用,一直没有找到,这次正好在研究图神经网络源码的时候看到了一种写法,因此对这种方法做一个记录。
需要用到的函数getattr()
,这个函数主要用来使用一个对象和字符串获取该对象的属性。
object: object
function name: str
例如使用获取pandas包中的read_csv函数,可以使用下面的代码:
1 | getattr(pandas,"read_csv") |
有了这个函数,就可以直接使用该函数以字符串拼接的方式来进行传参函数选择,例如使用下面的函数根据传入的文件类型选择使用的读文件函数:
1 | def read_file(filename): |