python中根據字串呼叫函式的實現方法

2022-09-28 05:45:12 字數 1405 閱讀 1922

在python中可以根據字串來呼叫函式:

1、使用getattr從字串來呼叫函式

在多程序中,可能傳遞過來的是乙個字串,那麼我怎麼來呼叫乙個已經存在的函式呢,主要就是使用到getattr函式的作用,這個函式就是在使用字串得到這個字串對應的函式的物件,然後就可以進行執行,如下所示:

在模組中,存在兩個函式:

[root@python 530]# cat attr.py

#!/usr/bin/env python

def kel():

print 'this is a kel function'

def smile():

print 'this is a smile funct程式設計客棧ion'

if __name__ == '__main__':

kel()

smile()

在上面的attr模組中,定義了兩個函式,乙個函式為kel,另外乙個程式設計客棧函式為smile,那麼我根據字串kel和smile怎麼執行函式呢,就是使用getattr函式,如下所示:

>>> import attr

>>> k = getattr(attr,'kel')

>>> k()

this is a kel function

>>> s = getattr(attr,'smile')

>>> s()

this is a smile function

>>> e = getattr(attr,'errors')

traceback (most recent call last):

file "", line 1, in

attributeerror: 'module' object has no attribute 'errors'

在第乙個中,直接匯入模組,那麼模組就是乙個object,從而在getattr根據字串kel獲取到attr中的kel()函式,從而最後進行執行,這裡也就實現了,根據字串的不同,從而執行相應的函式。

2、 使用字典來呼叫函式

在上面模組的定義不變,程式設計客棧但是在呼叫的時候,可以定義乙個字典,根據字典的值來進行執行函式,如下所示:

>>> import attr

>>> d =

>>> d['kel']()

this is a kel function

>>> d['smile']()

thivxutts is a smile function

從而可以使用字典值來進行呼叫函式。

以上兩種方法主要就是用來,當傳遞過來乙個字串的時候,我該如何呼叫其他函式,那麼第一種方法就是使用getattr來進行執行函式;第二種方法就是預先定義乙個字典,然後執行字典的值即可。

本文標題: python中根據字串呼叫函式的實現方法

本文位址:

python中根據字串呼叫函式

在python中可以根據字串來呼叫函式 1 使用getattr從字串來呼叫函式 在多程序中,可能傳遞過來的是乙個字串,那麼我怎麼來呼叫乙個已經存在的函式呢,主要就是使用到getattr函式的作用,這個函式就是在使用字串得到這個字串對應的函式的物件,然後就可以進行執行,如下所示 在模組中,存在兩個函式...

Python的partition字串函式

rpartition s.rpartition sep head,sep,tail search for the separator sep in s,starting at the end of s,and return the part before it,the separator itsel...

Disn mysql MySQL中的字串函式

使用字串資料 當使用字串資料時,可以使用下面的字元資料型別。char 固定長度 不足部分使用空格填充的字串。varchar 變長字串。text mysql和sql server 或clob character large object oracle database 容納大長度的邊長字串 通常在上下...