回覆列表
  • 1 # IT資訊i

    說起python過載,大家學過其他的語言比如說C#語言的話,應該知道有方法過載和運算子過載的概念,但是python過載的話,有它自己的特殊性,下面我說說自己的一點看法,希望大家踴躍拍磚。

    python 的過載主要包括方法過載和運算子過載。

    1.python 方法過載: 其他的語言一般對於方法過載的話,主要是根據引數的型別不同或者是數量不同來區分同名的方法。而python則比較特殊,它本身是動態語言,方法的引數是沒有型別的,當呼叫傳值的時候才確定引數的型別,故對引數型別不同的方法無需考慮過載。對引數數量不同的方法,則(大多數情況下)可以採用引數預設值來實現。

    比如你可以定義函式的預設值:

    def info(x,y,z=1):

    pass

    2.python 運算子過載: 在C#中,我們透過使用關鍵字operator定義一個運算子方法,並定義與所在類相關的運算子行為。在 Python中,運算子過載的方式更為簡單——每一個類都預設內建了所有可能的運算子方法,只要重寫這個方法,就可以實現針對該運算子的過載。例如以下是過載加法操作:

    class Info(object):

    def __init__(self):

    self.a = 11

    self.b = 22

    def __add__(self,x):

    return self.a * self.b

    a = Info()

    b = Info()

    print a + b

    上面的例子是重寫了+運算子號,你也可以過載其他的運算子。比如你可以過載乘號運算子,感興趣的話,可以自己寫寫程式碼。

    百度搜索圈T社群(www.aiquanti.com) 免費影片教程

  • 中秋節和大豐收的關聯?
  • 告慰在天之靈得以安息句子?