Python打卡十七 零碎知識點

2021-10-12 12:28:52 字數 4143 閱讀 5561

1、特殊方法和運算子過載

運算子過載:

'''

運算子過載

'''class

people

:def

__init__

(self,name)

: self.name = name

def__add__

(self, other):if

(isinstance

(other,people)):

return

"--"

.format

(self.name,other.name)

else

:print

("不是同類物件,不可進行相加。"

)def

__mul__

(self,other):if

(isinstance

(other,

int)):

return self.name*other

else

:print

("不是同類物件,不可進行相乘。"

)p1 = people(

"任嘉倫"

)p2 = people(

"嘉人"

)print

((p1+p2)*3

)

執行結果:

任嘉倫-

-嘉人任嘉倫-

-嘉人任嘉倫-

-嘉人

2、特殊屬性

其中obj是普通的物件,class是類,例如:

class

c: pass

c = c(

)

上面的**中c是物件,其擁有的屬性是前兩個,c是類,其擁有的屬性是後4個。

3、物件的淺拷貝和深拷貝

'''

1、淺拷貝

python 拷貝一般都是淺拷貝。拷貝時,物件包含的子物件內容不拷貝。因此,源物件和拷貝物件會引用同乙個子物件。

2、深拷貝

使用 copy 模組的 deepcopy 函式,遞迴拷貝物件中包含的子物件。源物件和拷貝物件所有的子物件也不同。

3、變數的賦值操作

只是形成兩個變數,實際還是指向同乙個物件。

'''import copy

class

mobilephone

:def

__init__

(self,cpu,screen)

: self.cpu = cpu

self.screen = screen

class

cpu:

defcaculate

(self)

:print

("使用cpu進行計算。"

)class

screen

:def

show

(self)

:print

("顯示一幅美麗的畫。"

)#測試變數的賦值

c1 = cpu(

)c2 = c1

print

("測試變數賦值~~"

)print

("c1:"

,c1)

print

("c2:"

,c2)

s = screen(

)c = cpu(

)#測試淺拷貝

m1 = mobilephone(c,s)

m2 = copy.copy(m1)

print

("測試淺拷貝~~"

)print

("m1: --"

.format

(m1,m1.cpu,m1.screen)

)print

("m2: --"

.format

(m2,m2.cpu,m2.screen)

)#測試深拷貝

m3 = mobilephone(c,s)

m4 = copy.deepcopy(m3)

print

("測試深拷貝~~"

)print

("m3: --"

.format

(m3,m3.cpu,m3.screen)

)print

("m4: --"

.format

(m4,m4.cpu,m4.screen)

)

執行結果:

測試變數賦值~

~c1:

<__main__.cpu object at>

>

c2:<__main__.cpu object at>

>

測試淺拷貝~

~m1:

<__main__.mobilephone object at>

>

-<__main__.cpu object at>

>

-<__main__.screen object at>

>

m2:<__main__.mobilephone object at>

>

-<__main__.cpu object at>

>

-<__main__.screen object at>

>

測試深拷貝~

~m3:

<__main__.mobilephone object at>

>

-<__main__.cpu object at>

>

-<__main__.screen object at>

>

m4:<__main__.mobilephone object at>

>

-<__main__.cpu object at>

>

-<__main__.screen object at>

>

4、組合

'''

1、「is-a」關係,我們可以使用「繼承」。從而實現子類擁有的父類的方法和屬性。

「is-a」關係指的是類似這樣的關係:狗是動物,dog is animal。狗類就應該繼承動

物類。2、「has-a」關係,我們可以使用「組合」,也能實現乙個類擁有另乙個類的方法和

屬性。「has-a」關係指的是這樣的關係:手機擁有 cpu。 mobilephone has a cpu。

'''#繼承

classa1:

defsay

(self)

:print

("a1 a1 a1"

)class

b1(a1)

:pass

bb1 = b1(

)print

("繼承~~"

)bb1.say(

)#組合

classa2:

def__init__

(self,a)

: self.a = a

classb2:

defsay

(self)

:print

("b2 b2 b2"

)print

("組合~~"

)bb2 = b2(

)aa = a2(bb2)

aa.a.say(

)

執行結果:

繼承~

~a1 a1 a1

組合~~

b2 b2 b2

python零碎知識點 2019 08 16

近來在復現meta sr,寫這系列總結相當於備忘錄,記錄每天遇到的一些python語法知識點,為方便日後不斷複習 小白在成長 a如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。w開啟乙個檔案只用於寫入。如果該檔案已存在則...

python零碎知識點 2019 8 19

乙個元素張量可以用item 得到元素值,請注意這裡的print x 和print x.item 值是不一樣的,乙個是列印張量,乙個是列印元素 x torch.randn 2,2 print x 1,1 print x 1,1 item 結果 tensor 0.4279 0.4278833866119...

零碎知識點

1.反斜槓也可拼接字串 window.nl ad function window.nl ad function 2.在console.log 中新增樣式 var a hello console.log c a,font size 400 background blue color white 3 通...