python从字符串解析方法名
生活随笔
收集整理的這篇文章主要介紹了
python从字符串解析方法名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法如下
import requests func_name = 'get' fn_obj = getattr(requests,func_name) fn_obj('http://www.baidu.com')如果是當前文件的方法
test.py
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import sys def fn():print('hello world') func_name = fn.__name__ fn_obj = getattr(sys.modules[__name__], func_name)# 根據函數名(func_name),獲得函數對象 fn_obj()# hello world這個的用處是
有時我們需要將一個文件的信息(類、函數及變量)保存到文件,我們不能直接保存函數對象,而是將其轉化為fn.__name__,問題來了,當我們想通過讀取文件的形式重新配置這些類、函數時,該如何把這些字符串轉換為對應的函數對象呢?
print(sys.modules[__name__])# <module '__main__' from '**/test.py'>查看getattr的doc,
getattr(object, name[, default]) -> value. Get a named attribute from
an object; getattr(x, ‘y’) is equivalent to x.y. When a default
argument is given, it is returned when the attribute doesn’t exist;
without it, an exception is raised in that case.
所以,getattr(sys.modules[__name__], func_name)的含義便是找到當前文件下名稱為func_name的對象(類對象或者函數對象)。
總結
以上是生活随笔為你收集整理的python从字符串解析方法名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python apply函数
- 下一篇: Python基础教程:条件语句的七种写法