算術運算子過載
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...