這一節,我們來實現乙個簡單的 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 ...