0%

拼接字符串调用函数

概述:本文主要描述了如何通过拼接字符串进行动态函数调用。

  之前一直想找个方法通过传参进行函数的动态调用,一直没有找到,这次正好在研究图神经网络源码的时候看到了一种写法,因此对这种方法做一个记录。

  需要用到的函数getattr(),这个函数主要用来使用一个对象和字符串获取该对象的属性。

object: object

function name: str

  例如使用获取pandas包中的read_csv函数,可以使用下面的代码:

1
getattr(pandas,"read_csv")

  有了这个函数,就可以直接使用该函数以字符串拼接的方式来进行传参函数选择,例如使用下面的函数根据传入的文件类型选择使用的读文件函数:

1
2
3
4
5
6
def read_file(filename):
file_type = get_filetype(filename)

read_function = getattr(pandas,"read_".format(file_type))

return read_function(filename)