python 類的練習及內建函式過載

2021-10-12 14:31:43 字數 1923 閱讀 1306

有關python類的練習題

定義乙個n維向量類:

(1)建立乙個初始化向量的成員函式

(2)過載格式化輸出函式

(3)將向量的模裝飾成屬性函式

(4)過載向量加法運算

(5)過載向量減法運算

(6)求兩向量的點積

(7)給出測試主程式

具體**如下

class

vector

:# 建立成員函式

def__init__

(self, v)

: self.v = v

# 過載格式化輸出函式

def__format__

(self, format_spec)

:return

"vector="

.format

(x=self.v)

# 將向量的模裝飾成屬性函式

@property

defnormcal

(self)

: temp =

0for i in self.v:

temp += i * i

print

("%s"

% temp**

0.5)

# 過載向量加法運算

def__add__

(self, other):if

len(self.v)

!=len

(other.v)

:return

"cant calculate"

result =

for i in

range

(len

(self.v)):

+other.v[i]

)return result

# 過載向量減法運算

def__sub__

(self, other):if

len(self.v)

!=len

(other.v)

:return

"cant calculate"

result =

for i in

range

(len

(self.v)):

-other.v[i]

)return result

# 求兩向量點積

defdot_product

(self, other):if

len(self.v)

!=len

(other.v)

:return

"cant calculate"

result =

for i in

range

(len

(self.v)):

*other.v[i]

)return result

"""以下是測試主程式

"""# 初始化兩個n維向量

class1 = vector([1

,3])

class2 = vector([2

,4])

# 格式化輸出函式呼叫

print

("{}"

.format

(class1)

)# 屬性函式呼叫

class1.normcal

# 兩向量加法

print

(class1+class2)

# 兩向量減法

print

(class1-class2)

# 兩向量點積

print

(class1.dot_product(class2)

)

python類的內建函式

str 函式如果乙個類中定義了 str 方法,那麼在列印 物件 時,預設輸出該方法的返回值。class foo def str self return wupeiqi obj foo print obj 輸出 wupeiqi iter 函式用於迭代器,之所以列表 字典 元組可以進行for迴圈,是因為...

python類中的內建函式

init init 方法在類的乙個物件被建立時,馬上執行。這個方法可以用來對你的物件做一些你希望的初始化。注意,這個名稱的開始和結尾都是雙下劃線。例子 usr bin python filename class init.py class person def init self,name self...

內建函式 練習

print all 1,5,3 print any a ascii 1,2,開外掛程式開外掛程式 print type a a print bin 2555 print bool 0 a bytes abcde encoding utf 8 print a.capitalize a b bytear...