物件導向及異常處理

2021-08-27 13:59:24 字數 2086 閱讀 9256

算術運算子過載

class number:

def __init__(self, num):

self.num = num

​    # 物件出現在'+'左邊時會自動觸發

def __add__(self, other):

print('__add__')

return self.num + other

​    # 物件出現在'+'右邊是會自動觸發

def __radd__(self, other):

print('__radd__')

return self.num + other

​    # +=運算時會自動觸發,沒有時會觸發 __add__

def __iadd__(self, other):

print('__iadd__')

return number(self.num + other)

n = number(100)

ret = n + 200

ret = 200 + n

print(ret)

n += 200    # n = n + 200

print(n)

加法:__add__、__radd__、__iadd__

減法:__sub__、__rsub__、__isub__

乘法:__mul__、__rmul__、__imul__

除法:__truediv__、__rtruediv__、__itruediv__

求餘:__mod、__rmod__、__imod__

函式傳參

深淺拷貝

class person:

def __del__(self):

print('物件釋放')

​p1 = person()

p2 = p1

​print(id(p1))

print(id(p2))

​del p1

del p2

print('over')

​def test(m):

# m += 1

m[0] = 300

​# n = 100

n = [100, 200]

​test(n)

print(n)

​import copy

​lt = [1, 2, [3, 4]]

​# 淺拷貝,只拷貝物件本身,不拷貝物件中的元素

# lt2 = lt.copy()

# 淺拷貝

lt2 = copy.copy(lt)

​# 深拷貝:不但拷貝物件本身,還拷貝物件中的元素

lt2 = copy.deepcopy(lt)

lt[0] = 100

lt2 = 300

​print(id(lt))

print(id(lt2))

print(lt)

print(lt2)

異常處理

異常語法:

try:

print('正常**')

# print(a)

3/0except exception as e:

# exception 是所有異常的基類,此處可以捕獲所有的異常

print('出現異常')

print(e)

​  print('其他內容')

# fp = open('test.txt', 'r')

# 中間無論有無異常,最後一定得關閉檔案

# fp.close()

​  with open('test.txt', 'r') as fp:

content = fp.read(5)

print(content)

# 此處不要考慮檔案的關閉問題,也不用是否有異常

安裝工具:virtualenv

建立虛擬環境

啟用虛擬環境

退出虛擬環境

冷凍乙個環境依賴包

快速複製乙個虛擬環境

Python基礎 13 物件導向及異常處理

算術運算子過載 class number def init self,num self.num num 物件出現在 左邊時會自動觸發 def add self,other print add return self.num other 物件出現在 右邊是會自動觸發 def radd self,oth...

Java物件導向三大類及異常處理

1.程式設計題 要求 1 person類有name,age,salary屬性,要求實現至少兩個構造方法,並且屬性私有,提供對應的getter setter。2 覆寫tostring方法,要求在system.out.println 函式中傳遞person物件能列印出三個屬性值而不是物件位址。3 覆寫e...

物件導向 異常

異常 exception 1.定義 就是導致程式終止的一種指令流,異常會使程式終止執行 2.throw和throws a throw用於丟擲一場物件 b throws用於標識函式暴露出的異常 區別 a throw用在函式上,後面跟異常類名 b throws用在函式內,後面跟異常物件 3.異常細節 a...