通过字符串调用对象属性或方法

有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象属性或方法

1、eval

In [634]: def getmethod(x,char='just for test'):
     ...:     return eval('str.%s' % x)(char)
     ...: 
In [635]: getmethod('upper')
Out[635]: 'JUST FOR TEST'

2、getattr

In [650]: def getmethod2(x, char='just for test'):
     ...:     return getattr(char, x)()
     ...: 
In [651]: getmethod2('upper')
Out[651]: 'JUST FOR TEST'

3、利用内置库operator


In [648]: def getmethod3(x, char='just for test'):
     ...:     return operator.methodcaller(x, char)(str)
     ...: 
In [649]: getmethod3('upper')
Out[649]: 'JUST FOR TEST'

你可能感兴趣的:(python基础学习,python好用的库,采坑记录)