python學習筆記 陸

2022-10-10 10:03:10 字數 3120 閱讀 8131

物件導向的特點 和 自己的感悟

1._init_是建構函式,給例項變數(靜態變數賦值,屬性)賦值

2.self 代表是把例項傳進去,誰呼叫就把誰傳進去

3.建構函式

中的例項變數,存在例項的記憶體空間裡

4.類中的方法,類的變數。存在類的記憶體空間裡

5.類的變數,對所有例項(物件)都是有用的,但同名的時候首先以例項變數為準,在記憶體中只建立一次,節省開銷

6.例項變數可以

新增(物件.新增的屬性=值),修改(物件.屬性名=值),刪除 (del 物件.屬性)

7.在物件裡修改

類變數,只會對當前的物件有效果。其他物件中的類變數不變。原因是

類變數是屬於類的,屬於所有物件的。在當前物件之所以改變,相當於給

例項新增了乙個

和類變數同名的屬性。所以雖然同名,但讀取的卻不是

類變數了。

8.如果

類變數是列表

或者是元組

字典集合

等資料結構,在不同的物件裡增加元素

或者其他操作,都會使

列表改變。因為他

既不存在類裡,也不存在例項裡。其他函式,對這種資料結構效果也是一樣的。

9.析構函式

用於收尾的

操作會在記憶體被**時呼叫,預設也就是程式結束時。也可以主動刪除這個 del物件,那麼他將會在,這個物件所有的操作完成之後執行。

def __del__( self ):

pass

私有屬性。方法。在前面加上兩個_。只能在類內部進行訪問,外部不可直接讀取。這樣就避免了,有人直接通過類,或者物件。獲得或修改資料。資料變得更加安全。

私有屬性無法訪問的根本原因

在於它的名稱發生了變化

變成了_類名__變數名

繼承

重構父類方法

子類新新增乙個屬性

另一種方式呼叫父類 super

關於例項變數的兩種查詢策略

例子:a分別被 b c繼承,d繼承 b c

ab(a) c(a)

d(b,c)

廣度優先

順序 d>b>c>a

深度優先

順序 d>b>a>c

例子

#父類1

classpeople(object):

def__init__(self,name,age):

self.name=name

self.age=age

defeta(self):

print("%s在吃苦瓜"%self.name)

#父類2

classwork(object):

defpapa(self):

print("%s在敲**"%self.name)

#繼承兩個父類

classhouzi(people,work):

#新增乙個新屬性city

def__init__(self,name,age,city):

people.__init__(self,name,age)

self.city=city

defchengshi(self):

print("%s在%s生活"%(self.name,self.city))

defeta(self):

'''重構父類方法'''

print("%s該拔智齒了"%self.name)

people.eta(self)

#建立乙個例項

h1=houzi("大錘","23","北京")

h1.eta()

h1.papa()

h1.chengshi()

輸出

多型

同一介面,多種實現

DarkGDK庫學習筆記(陸)

陰天了乙個上午,期待一場可以讓我無比順暢的雨 dark gdk程式在顯示輸出時,輸出的內容實際是再視窗內容重新整理後才傳送到螢幕的。預設情況下,dark gdk程式會盡快重新整理黑框框。但是,執行任務繁重的 可能干擾重新整理速度。比如,執行乙個死迴圈的時候,cpu就沒有時間來重新整理螢幕了 下面介紹...

微博登陸python學習

python3版本的 從前的cookielib import base64 import json import urllib import urllib.parse import binascii class userlogin url解碼 def init self,username,userp...

Python學習之登陸認證

需求 讓使用者輸入使用者名稱密碼 認證成功後顯示歡迎資訊 輸錯三次後退出程式 可以支援多個使用者登入 提示,通過列表存多個賬戶資訊 如下 1 coding utf 8 2 date 3 12 2018 34 count 0 5 users 利用字典儲存多個使用者名稱 密碼 6 name input ...