回覆列表
-
1 # 福律閣土地訴訟
-
2 # AGGrain
python 不支援過載嗎?那magic function是用來幹嘛的。樓主說的應該是override吧,不是overload。
-
3 # 左響腳
因為函式重裁是靜態型別語言的東西,只有引數資料型別確定才知道調什麼函式,而動態型別語言如python,JavaScript, php等都沒有函式重裁
-
4 # 哈哈大明白
實際變相支援了過載!!透過可變引數實現的。*args **kwargs 這兩個重要的引數實現了一個函式無數種功能。
-
5 # Ren
Python不瞭解,但是類似的Lua非常熟悉,Lua函式內可以直接解析呼叫引數的數量和型別,能夠變相實現過載的功能,不需要寫一堆同名函式來實現,本質上是一樣的。
-
6 # 土豆花開555
當一個函式有特別多的引數,而大部分可以有預設值的時候,比如機器學習領域,Python就處理的很好。java嚴格是好事,但被設計模式這個老鼠屎毀掉了
結論:因為這會違背Python之禪:Simple is better than complex.
函式過載,意味著,在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同。如果Python這樣做,將會對新手,甚至是老手都會很不友好,而且這樣做是極反人類的。換位思考,如果你是行為人,想要找行政機關辦事,如果有兩個行政機關名字完全相同,結果分管不同職能,你會怎麼想,是不是會覺得行政機關在不作為,是懶政!
因此,Python為了簡單,放棄了很多其他語言沒有的特性,這是我最欣賞Python的地方。