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

首頁 > 編程 > Python > 正文

老生常談python中的重載

2020-01-04 14:05:49
字體:
來源:轉載
供稿:網友

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

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

python 中的重載

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

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

python3.4中增加的重載機制

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

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

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中的重載,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳东县| 丽江市| 那坡县| 益阳市| 柳州市| 宁城县| 克拉玛依市| 莱州市| 丰顺县| 名山县| 贵阳市| 泸溪县| 旬阳县| 澄江县| 澄迈县| 乌海市| 岢岚县| 乌拉特后旗| 河南省| 北宁市| 陇西县| 鄂伦春自治旗| 安徽省| 绥阳县| 恭城| 诸暨市| 浑源县| 江陵县| 舒兰市| 通州区| 托克逊县| 哈尔滨市| 昭苏县| 丹棱县| 白银市| 尼勒克县| 包头市| 新安县| 建水县| 盐池县| 海丰县|