python中的過載
在一些靜態語言中,大都存在有一個過載的概念。這是在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
- python中實現函式過載Python函式
- python3中實現函式的過載Python函式
- PHP中的過載PHP
- 在 Python 中實現函式過載Python函式
- Python中類方法過載---大部分Python
- 如何在Python中實現函式過載Python函式
- python 中為什麼不需要過載Python
- python-過載Python
- Python 方法過載Python
- oracle PL/SQL中的過載OracleSQL
- 關於Python中函式過載問題的思考(原創)Python函式
- python支援過載嗎Python
- Python 運算子過載Python
- Java繼承中成員方法的overload(過載/過載)Java繼承
- python 類的繼承與過載Python繼承
- Python模組過載的五種方法Python
- [python]web框架中的程式碼自動過載怎麼實現PythonWeb框架
- PHP 中的操作符過載PHP
- 如何實現JS中的過載JS
- C++中運算子的過載C++
- Java中的過載和重寫Java
- Python 函式如何過載?Python函式
- python之運算子過載Python
- Python 類,函式過載Python函式
- Python——運算子過載(1)Python
- python過載父類的__init__方法Python
- [轉載] Java Challengers#1:JVM中的方法過載JavaJVM
- python3-----繼承 過載Python繼承
- 關於python建構函式的過載Python函式
- Python中有重寫和過載的方法嗎?Python
- python中PCA的處理過程PythonPCA
- java中過載與重寫的區別Java
- C++中過載new和delete的使用C++delete
- python函式過載是什麼?Python函式
- 【python隨筆】之【運算子過載】Python
- Python中常見運算子過載方法Python
- Python實踐:模組自動過載Python