1、callable函数介绍

  介绍任何对象作为参数,如果参数对象是可调用的,返回True;否则返回False。

In [1]: import string

In [3]: string.punctuation

Out[3]: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

In [4]: string.join

Out[4]: <function string.join>

In [6]: callable(string.punctuation)

Out[6]: False


In [7]: callable(string.join)

Out[7]: True

2、getattr函数介绍

   使用getattr函数,可以得到一个直到运行时才直到名称的函数的引用。


In [8]: li = ["larry","curly"]


In [9]: li.pop

Out[9]: <function pop>


In [10]: getattr(li,"pop")  //相当于li.pop

Out[10]: <function pop>


In [11]: getattr(li,"append")("moe")  //相当于li.append("moe")


In [12]: li

Out[12]: ['larry', 'curly', 'moe']


In [13]: getattr({},"clear") //确定{}字典里面有没有clear这个方法。

Out[13]: <function clear>


In [14]: getattr((),"pop")//因为()元组里面并没有POP这个方法所以报错。

---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

/root/<ipython-input-14-e1701c6ecc00> in <module>()

----> 1 getattr((),"pop")


AttributeError: 'tuple' object has no attribute 'pop'


In [15]: