算術運算子過載
classnumber:
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 + 200ret = 200 +n
(ret)
n += 200 #
n = n + 200
print(n)
加法:__add__、__radd__、__iadd__減法:__sub__、__rsub__、__isub__
乘法:__mul__、__rmul__、__imul__
除法:__truediv__、__rtruediv__、__itruediv__
求餘:__mod、__rmod__、__imod__
函式傳參
深淺拷貝
classperson:
def__del__
(self):
print('
物件釋放')
p1 =person()
p2 =p1
(id(p1))
(id(p2))
delp1
delp2
print('
over')
deftest(m):
#m += 1
m[0] = 300
#n = 100
n = [100, 200]
test(n)
(n)import
copy
lt = [1, 2, [3, 4]]
#淺拷貝,只拷貝物件本身,不拷貝物件中的元素
#lt2 = lt.copy()
#淺拷貝
lt2 =copy.copy(lt)
#深拷貝:不但拷貝物件本身,還拷貝物件中的元素
lt2 =copy.deepcopy(lt)
lt[0] = 100lt2 = 300
(id(lt))
(id(lt2))
(lt)
print(lt2)
異常處理
異常語法:
try:
print('
正常**')
#print(a)
3/0except
exception as e:
#exception 是所有異常的基類,此處可以捕獲所有的異常
print('
出現異常')
(e)
print('
其他內容
')
#fp = open('test.txt', 'r')
#中間無論有無異常,最後一定得關閉檔案
#fp.close()
with open(
'test.txt
', 'r'
) as fp:
content = fp.read(5)
(content)
#此處不要考慮檔案的關閉問題,也不用是否有異常
安裝工具:virtualenv
建立虛擬環境
啟用虛擬環境
退出虛擬環境
冷凍乙個環境依賴包
快速複製乙個虛擬環境
python基礎 13 物件導向2
定義乙個類物件,並將其實例化。對不同的例項物件,我們可以手動定義不同的屬性值 class person def speak self print 你好,我是 s self.name p1 person p2 person p3 person p1.name 鋼鐵俠 p2.name 蜘蛛俠 p1.sp...
python 基礎學習 13 物件導向一
3.類的定義 4.引數self 面向過程注重的是過程 1.媽媽穿衣服穿鞋出門 2.媽媽騎上電動車 3.媽媽到超市門口放好電動車 4.媽媽買西瓜 5.媽媽結賬 6.媽媽騎電動車回家 7.到家孩子吃西瓜 物件導向的程式語言,關注的是物件,而不注重過程,對於物件導向一切皆物件 物件導向注重的是結果 以上方...
物件導向1 3
類的結構之三 構造器 構造方法 constructor 的使用 一 構造器的作用 1.建立物件 2.初始化物件的屬性 封裝性的體現 1.將類中的屬性 私有化,通過public方法獲取get 和設定set 此屬性的值。2.不對外暴露的私有的方法。3.單例模式。將構造器私有化即在乙個類中通過構造器只建立...