欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中用字符串調用函數或方法示例代碼

 更新時間:2017年08月04日 08:28:05   作者:Abnerzhao  
字符串作為python中常用的數據類型,掌握字符串的常用方法十分必要。下面這篇文章主要給大家介紹了關于Python中通過字符串調用函數或方法的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要給大家介紹了關于Python用字符串調用函數或方法的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

先看一個例子:

>>> def foo():
    print "foo"

>>> def bar():
    print "bar"

>>> func_list = ["foo","bar"]
>>> for func in func_list:
    func()
TypeError: 'str' object is not callable

我們希望遍歷執(zhí)行列表中的函數,但是從列表中獲得的函數名是字符串,所以會提示類型錯誤,字符串對象是不可以調用的。如果我們想要字符串變成可調用的對象呢?或是想通過變量調用模塊的屬性和類的屬性呢?

以下有三種方法可以實現(xiàn)。

eval()

>>> for func in func_list:
    eval(func)()
foo
bar

eval() 通常用來執(zhí)行一個字符串表達式,并返回表達式的值。在這里它將字符串轉換成對應的函數。eval() 功能強大但是比較危險(eval is evil),不建議使用。

locals()和globals()

>>> for func in func_list:
    locals()[func]()
foo
bar

>>> for func in func_list:
    globals()[func]()
foo
bar

locals() 和 globals() 是python的兩個內置函數,通過它們可以一字典的方式訪問局部和全局變量。

getattr()

getattr() 是 python 的內建函數,getattr(object,name) 就相當于 object.name,但是這里 name 可以為變量。

返回 foo 模塊的 bar 方法

>>> import foo
>>> getattr(foo, 'bar')() 

返回 Foo 類的屬性

>>> class Foo:
  def do_foo(self):
    ...

  def do_bar(self):
    ...

>>> f = getattr(foo_instance, 'do_' + opname)
>>> f()

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考

Calling a function of a module from a string with the function's name in Python

How do I use strings to call functions/methods?

相關文章

  • Python Numpy庫常見用法入門教程

    Python Numpy庫常見用法入門教程

    這篇文章主要介紹了Python Numpy庫常見用法,結合實例形式詳細Fenix了Python numpy庫基本功能、原理以及數組常見操作技巧,需要的朋友可以參考下
    2020-01-01
  • 詳解python:time模塊用法

    詳解python:time模塊用法

    這篇文章主要介紹了python:time模塊用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python簡明入門教程

    Python簡明入門教程

    這篇文章主要介紹了Python簡明入門教程,較為詳細的分析了Python的基本概念及語法基礎,有助于Python初學者更好的掌握Python的基本語法與使用技巧,需要的朋友可以參考下
    2015-08-08
  • python操作excel之xlwt與xlrd

    python操作excel之xlwt與xlrd

    這篇文章主要介紹了python使用xlwt與xlrd操作excel,需要的朋友可以參考下
    2022-12-12
  • tensorflow-gpu安裝的常見問題及解決方案

    tensorflow-gpu安裝的常見問題及解決方案

    這篇文章主要介紹了tensorflow-gpu安裝的常見問題及解決方案,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧,需要的朋友可以參考下
    2020-01-01
  • Python Unittest原理及基本使用方法

    Python Unittest原理及基本使用方法

    這篇文章主要介紹了Python Unittest原理及基本使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python返回真假值(True or False)小技巧

    Python返回真假值(True or False)小技巧

    這篇文章主要介紹了Python返回真假值(True or False)小技巧,本文探討的是最簡潔的條件判斷語句寫法,本文給出了兩種簡潔寫法,需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)倉庫管理系統(tǒng)

    Python實現(xiàn)倉庫管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Python實現(xiàn)倉庫管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • python中返回矩陣的行列方法

    python中返回矩陣的行列方法

    下面小編就為大家分享一篇python中返回矩陣的行列方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python導入模塊包原理及相關注意事項

    Python導入模塊包原理及相關注意事項

    這篇文章主要介紹了Python導入模塊包原理及相關注意事項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論