国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

老生常談python中的重載

2020-02-15 23:36:22
字體:
來源:轉載
供稿:網友

在一些靜態(tài)語言中,大都存在有一個重載的概念。這是在OOP(面對對象編程)中一個必不可少的一個行為。

所謂重載,就是多個相同函數名的函數,根據傳入的參數個數,參數類型而執(zhí)行不同的功能。所以函數重載實質上是為了解決編程中參數可變不統(tǒng)一的問題。

python 中的重載

  在python中,具有重載的思想卻沒有重載的概念。所以有的人說python這么語言并不支持函數重載,有的人說python具有重載功能。實際上python編程中具有重載的目的缺無重載的行為,或者說是python并不需要重載!

  python是一門動態(tài)語言,不需要聲明變量類型,函數中可以接受任何類型的參數也就無法根據參數類型來支持重載,python沒有必要去考慮參數的類型問題,這些都可以在函數內部判斷處理,并無必要去在寫一個函數。python 有多種傳參方式,默認參數/可變參數/可變關鍵字參數可以處理函數參數中參數可變的問題。

python3.4中增加的重載機制

如果你不用重載就會渾身難受的話

那么在python3.4中提供有一個轉發(fā)機制來實現重載

from functools import singledispatch  @singledispatch def function(obj):   print('%r'%(obj))@function.register(int) def function_int(obj):   print('Integer: %d'%(obj)) @function.register(str) def function_int(obj):   print('String: %s'%(obj)) @function.register(list) def function_list(obj):   print('List: %r'%(obj)) if __name__ == "__main__":    function(1)    function('hello')    function(range(3))    function(object) 

總結

以上所述是小編給大家介紹的python中的重載,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宿州市| 木兰县| 南平市| 开封市| 丰都县| 西峡县| 荥经县| 泰顺县| 唐山市| 平定县| 廊坊市| 山西省| 玉溪市| 巴林左旗| 太湖县| 深水埗区| 宁强县| 从化市| 岑溪市| 宝应县| 梁平县| 宜宾县| 和硕县| 阿克陶县| 刚察县| 瓦房店市| 广东省| 龙游县| 阿克陶县| 平塘县| 大竹县| 诸暨市| 黄骅市| 晴隆县| 克拉玛依市| 高雄市| 壶关县| 图们市| 尚义县| 射洪县| 马尔康县|