python 通过 实例方法 名字的字符串调用方法
生活随笔
收集整理的這篇文章主要介紹了
python 通过 实例方法 名字的字符串调用方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
方式1 - 反射
hasattr 方法
判斷當(dāng)前實(shí)例中是否有著字符串能映射到的屬性或者方法, 一般會(huì)在 getattr 之前作為判斷防止報(bào)錯(cuò)
getattr 方法
獲取到當(dāng)前實(shí)例中傳入字符串映射到的屬性或者方法
示例
class A(object):def run(self):return "run"a = A()print hasattr(a, "run") # True print getattr(a, "run") # <bound method A.run of <__main__.A object at 0x0000000002A57160>> print getattr(a, "run")() # run方式2 - operator 模塊
methodcaller 方法
- 參數(shù)
傳入兩個(gè)參數(shù), 分別為字符串表示映射的方法, 另一個(gè)參數(shù)為此方法的運(yùn)行參數(shù),
- 返回值
返回一個(gè) 字符串映射到的方法實(shí)例
示例
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' import operatorclass A(object):def run(self):return "run"def eat(self, s):return s + ": eat"a = A()print operator.methodcaller("run") # <operator.methodcaller object at 0x0000000002ADAC08> print operator.methodcaller("run")(a) # run print operator.methodcaller("eat", "yangtuo")(a) # yangtuo: eat總結(jié)
以上是生活随笔為你收集整理的python 通过 实例方法 名字的字符串调用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python列表list的基本性质
- 下一篇: python赋值方式