已有字符串形式的函數(shù)名稱,那么如何調(diào)用這個函數(shù)呢?
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、武平網(wǎng)絡(luò)推廣、微信小程序、武平網(wǎng)絡(luò)營銷、武平企業(yè)策劃、武平品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供武平建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:aaarwkj.com
通過調(diào)用內(nèi)置函數(shù)locals()和globals()返回的字典對象,就可以可以獲得名稱與對象的映射關(guān)系。其中,locals()僅在全局范圍內(nèi)調(diào)用時可以獲得函數(shù)對象。 我們來看以下的例子。
需要注意的是,使用上述方法通過字符串調(diào)用函數(shù)時,為了系統(tǒng)的安全,防止執(zhí)行任意函數(shù),需要對函數(shù)名做一些處理,也就是使用統(tǒng)一的前綴為這些函數(shù)命名。例如在上述例子中,使用前綴cmd_+函數(shù)名的形式定義函數(shù)(cmd_help,cmd_sum)。
在傳入函數(shù)名字符串時,只傳入函數(shù)名的后半部分(如"help","sum"),由程序添加前綴后組成完整的函數(shù)名,再調(diào)用該函數(shù)。
對于類的成員函數(shù),則可以使用getattr()獲得類成員函數(shù)。
上述代碼通過字符串調(diào)用了類成員函數(shù),與前一段代碼執(zhí)行的結(jié)果相同。
此外,還可以使用字典將字符串與函數(shù)對應(yīng)起來調(diào)用,缺點就是每增加一個函數(shù)需要相應(yīng)在字典對象中添加相應(yīng)的鍵值,增加代碼維護(hù)工作量。
以上代碼在Python 3.6以上運(yùn)行通過。
在python中,除了調(diào)用下載的擴(kuò)展庫之外,還可以自定義函數(shù),方便自己。把基礎(chǔ)模塊放在固定文件夾(或相對固定文件夾),使用sys.append(r’自定義的模塊路徑’)實例如下:
1、在E:pycharm新建hello.py實現(xiàn)基礎(chǔ)功能函數(shù)(定義一個hello()函數(shù))
2、 調(diào)用自定義的函數(shù)
3、 運(yùn)行結(jié)果為:
更多Python相關(guān)技術(shù)文章,請訪問Python教程欄目進(jìn)行學(xué)習(xí)!以上就是小編分享的關(guān)于python中如何調(diào)用自己寫的函數(shù)的詳細(xì)內(nèi)容希望對大家有所幫助,更多有關(guān)python教程請關(guān)注環(huán)球青藤其它相關(guān)文章!
一直對不同語言間的交互感興趣,python和C語言又深有淵源,所以對python和c語言交互產(chǎn)生了興趣。
最近了解了python提供的一個外部函數(shù)庫 ctypes , 它提供了C語言兼容的幾種數(shù)據(jù)類型,并且可以允許調(diào)用C編譯好的庫。
這里是閱讀相關(guān)資料的一個記錄,內(nèi)容大部分來自 官方文檔 。
ctypes 提供了一些原始的C語言兼容的數(shù)據(jù)類型,參見下表,其中第一列是在ctypes庫中定義的變量類型,第二列是C語言定義的變量類型,第三列是Python語言在不使用ctypes時定義的變量類型。
創(chuàng)建簡單的ctypes類型如下:
使用 .value 訪問和改變值:
改變指針類型的變量值:
如果需要直接操作內(nèi)存地址的數(shù)據(jù)類型:
下面的例子演示了使用C的數(shù)組和結(jié)構(gòu)體:
創(chuàng)建指針實例
使用cast()類型轉(zhuǎn)換
類似于C語言定義函數(shù)時,會先定義返回類型,然后具體實現(xiàn)再定義,當(dāng)遇到下面這種情況時,也需要這么干:
可以簡單地將"so"和"dll"理解成Linux和windows上動態(tài)鏈接庫的指代,這里我們以Linux為例。注意,ctypes提供的接口會在不同系統(tǒng)上有出入,比如為了加載動態(tài)鏈接庫, 在Linux上提供的是 cdll , 而在Windows上提供的是 windll 和 oledll 。
ctypes會尋找 _as_paramter_ 屬性來用作調(diào)用函數(shù)的參數(shù)傳入,這樣就可以傳入自己定義的類作為參數(shù),示例如下:
用 argtypes 和 restype 來指定調(diào)用的函數(shù)返回類型。
這里我只是列出了 ctypes 最基礎(chǔ)的部分,還有很多細(xì)節(jié)請參考官方文檔。
這兩天文章沒有寫,先是早出晚歸出去玩了一整天,然后加班到凌晨3點左右,一天一篇計劃劃水得嚴(yán)重啊…
文章題目:python程序函數(shù)調(diào)用,Python函數(shù)的調(diào)用
當(dāng)前地址:http://aaarwkj.com/article36/dssjdsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站制作、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)