Python 實現簡單 Vector 類

2021-09-10 03:17:03 字數 1602 閱讀 3143

這一節,我們來實現乙個簡單的 vector 類。

vector 類有兩個屬性,為 x,y 座標,即對應向量的橫縱座標。

首先,實現過載 + 號的方法def __add__,及實現兩個向量的加法。具體做法是:將加號兩邊的 vector 物件的 x, y值相加,得到新的 x, y值並且返回乙個新的向量物件。

__sub__方法實現了 vector 物件的減法,和加法差不多。讓向量物件的對應屬性相減,並返回新的向量物件。

__ads__方法,使得可以對例項進行 ads操作(即取橫縱座標的模)。

__mul__方法,使得例項可以通過乘法進行伸縮的操作。

__repr____str__方法使得列印物件更加美觀。

import math

# python高效程式設計

class

vector

(object):

def__init__

(self, x, y)

: self.x = x

self.y = y

def__add__

(self, other)

: x = self.x + other.x

y = self.y + other.y

return vector(x, y)

def__sub__

(self, other)

: x = self.x - other.x

y = self.y - other.y

return vector(x, y)

def__abs__

(self)

:return math.sqrt(self.x **

2+ self.y **2)

def__bool__

(self)

:return

bool

(self.x or self.y)

def__mul__

(self, times)

:return vector(self.x * times, self.y * times)

def__repr__

(self)

:return

'vector({}, {})'

.format

(self.x, self.y)

__str__ = __repr__

defmain()

: v1 = vector(3,

5)v2 = vector(4,

5)v3 = v1 + v2

v4 = v3 *

2 v5 = v2 - v1

print

(v3)

print

(v4)

print

(abs

(v3)

)print

(v5)

if __name__ ==

'__main__'

: main(

)

過載技巧 簡單實現string和Vector

1.賦值 下標 呼叫 和成員訪問箭頭 等操作符必須定義為成員,將這些操作符定義為非成員函式將在編譯時標記為錯誤。2.像賦值一樣,復合賦值操作符通常應定義為類的成員。與賦值不同的是,不一定非得這樣做,如果定義為非成員復合賦值操作符,不會出現編譯錯誤。3.改變物件狀態或與給定型別緊密聯絡的其他一些操作符...

Java集合4 list實現類之Vector

vector簡介 以下原始碼都是jdk1.7.8.0 1,成員變數 protected object elementdata protected int elementcount protected int capacityincrement private static final long se...

python實現簡單爬蟲 Python實現簡單爬蟲

簡介 爬蟲架構 1 url管理器 3 網頁分析器 4 爬蟲呼叫器 5 價值資料使用 爬蟲實現 1 排程器實現 coding utf 8 import url manager import html import html parser import html outputer import url ...