1. 程式人生 > >Python 類,函式過載

Python 類,函式過載

class complex:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def show(self):
        print(self.x, "+", self.y, "i")

    def __add__(self, other):        #過載,對原來的函式作了新的定義和解釋
        if type(other)==type(self):  #過載complex+complex,判斷型別
            return complex(self.x + other.x, self.y + other.y)  # 加法的返回值
        elif type(other)==type(10):  #過載complex+int,判斷型別
            return complex(self.x + other, self.y + other)


c1 = complex(1, 2)
c2 = complex(3, 5)
c1.show()
c2.show()
# c3=c1+c2
# c3=c1.__add__(c2)
c3 = c1 + 10  #complex+int
c3.show()
c4 = c3 + c2  #complex+complex
c4.show()


相關推薦

Python 函式過載

class complex: def __init__(self, x, y): self.x = x self.y = y def show(self): print(self.x, "+", self.y

python繼承&函式過載

class的繼承、wait函式過載。呼叫時 呼叫例項本身的函式 class Launcher(object): def __init__(self, conf, restart_method=

python函式互相呼叫記得帶self

import time from selenium import webdriver import pymysql import uuid class  main (object):    

Python property屬性(簡化屬性的操作)@propertyproperty()

  property屬性的建立方式有兩種:[email protected]裝飾器方式   2.類屬性方式 ( 類屬性=property() ) property屬性可以簡化例項物件對屬性的操作(獲取、設定),可以對屬性做型別校驗和預處理等。 裝飾

成員函式過載函式指標

在有成員函式過載的情況下該如何使用函式指標呢 class l { public: void func(); void func(int, int); }; void l::func() { cout << "func()" << endl; }

c++——函式特性函式過載行內函數簡單解釋

有預設引數值的引數必須在引數表的最右端 正確示例 void fun(int i;int j=1;int k=10); 錯誤示例 void fun(int i;int j=1;int k); 一般編譯器通過率高的是: 宣告寫預設值;定義不寫預設值 如下示例:

c++函式過載、重寫示例

1、檔案cls.h 標頭檔案cls.h實現了基類Base1、Base2,和子類Derived1、Derived2。 #pragma once #include <iostream> us

C++ 過載運算子 運算子過載函式作為成員函式 過載運算子+

用運算子過載函式作為類成員函式的方法過載運算子+ 下面的例子來自於課本: #include <iostream> using namespace std; class Complex {

預設引數函式過載引用行內函數...

目錄 預設引數 (預設引數) 函式過載 引用 常引用 行內函數 基於範圍的for迴圈 指標空值---nullptr 預設引數 (預設引數)          定義:指當函式呼叫中省略了實引數時自動使用的一個值。

函式的預設值行內函數函式過載

函式預設值 c++在函式方面比c多了個預設值,實際是當給函式不傳引數是該函式就會使用預設值對引數進行賦值,當然預設值是從右向左依次賦值 void sum(int a,int b=2,int c=3) {} int main() { sum(1);//因為a無預設值,所以要傳引數 } 函式預設

成員函式 過載 覆蓋 和 隱藏 的區別

a.成員函式被過載的特徵: (1)相同的範圍(比如在同一個類中); (2)函式名字相同; (3)引數不同; (4)virtual 關鍵字可有可無。 b.覆蓋是指派生類函式覆蓋基類函式,特徵是: (1)不同的範圍(分別位於派生類與基類); (2)函式名字相同; (3)引數相

python 函式互調的兩種用法

以leetcode 279題 Perfect Squares為例 題目: Given a positive integer n, find the least number of perfect

C++:名稱空間函式過載與預設引數

本篇部落格主要針對與c與c++不同的地方做以總結。 C++:在C的基礎上添加了一些新的特性 C++的學習主要分為以下幾個大的板塊。 - c - 類 & 物件 - 繼承 & 多型 - 模板 & 泛型程式設計 - 異常處理 -

python函式呼叫要加self

物件呼叫方法時, 實際上是通過類呼叫的a = muffedcalculator()a.calc(expr) 實際上是這樣呼叫的 muffledcalculator.calc(a, expr)這樣self 就是 a, python隱含地把a 傳進方法 替代了self, 就成了

Java中成員函式過載、覆蓋和隱藏的區別

其他擴充套件連結: 過載: 成員函式被過載的特徵: 1)相同的範圍:在同一個類中 2)函式名相同,引數不同 3)virtual可有可無 覆蓋: 派生函式覆蓋基類函式 1)位於不同的範圍內(子類

C++和python混合程式設計之在python建構函式中傳參方法

一、說明:C++專案中用到python相關的知識,這兩天研究了一下C++與python的混合程式設計,網上有很多這方面的介紹,但是怎麼使用python類的建構函式中傳參的介紹卻沒有,這裡研究一下,分享出來。(C++和python相互呼叫的相關介面查詢https:

運算子過載this指標

class Complex { private : double m_real; double m_imag; public: // 無引數建構函式 // 如果建立一個類你沒有寫任何建構函式,則系統會自動

Python :單元測試的三種方法函式測試測試文件測試

對程式的功能修改時,判斷是否影響了原有的功能使用的方法 #函式的單元測試 #類的測試方法與函式測試一致 def MySum(x,y) : return x+y def MySub(x,y) : return x-y #假設對以上的模組進行了修改,需要判斷是否對原有的

面試題16——簡述成員函式的重寫過載和隱藏的區別

重寫與過載主要有以下不同: (1)範圍的區別:被重寫的和重寫的函式在兩個類中,而過載和被過載的函式在同一個類中; (2)引數的區別:被重寫函式和重寫函式的引數列表一定相同,而被過載函式和過載函式的引數列表一定不同; (3)virtual的區別:重寫的基類中被重寫的函式必須要有virtual修