python筆記 八 類 part1

2022-01-28 20:29:37 字數 1608 閱讀 9994

class

myclass: 

pass

python中最簡單的類,pass表示什麼也不做。現在在這個類裡加乙個方法:

class

myclass:

defsayhello(self):

print

'hello'c 

=myclass()

c.sayhello()

唯一要注意的地方是sayhello方法帶了乙個引數self,這是個保留字,指向本身。但是在呼叫這個方法的時候不用顯示加上這個引數,如果加上這個引數的話會報異常。

進一步的來補充這個類,讓它能做更多的事情

class

myclass:

def__init__

(self,name):

self.name 

=name

defsayhello(self):

print

'hello %s'%

self.namec =

myclass(

'dhuang')

c.sayhello()

我們給它加了乙個方法,不過這個方法有點特別,起碼從名字看來是這樣的。

__init__方法從字面上是很好理解的,初始化。不錯很接近,當建立乙個類的新例項的時候,這個方法首先被執行,然後才是其他的。你可以理解它為建構函式,但是還是有很大我區別。最重要的乙個區別是,當進入__init__方法的時候類例項已經存在了。

在__init__方法中定義了乙個變數name,注意它前面的self,如果帶有self的話在這個類的全域性都可以使用,使用的方法當然是像這樣self.name。如果沒有帶self的話,則認為它是當前**塊的變數,不具有類的全域性訪問許可權

但是有種特殊情況,看下面的**

class

myclass:

count =0

def__init__

(self,name):

myclass.count+=1

self.name 

=name

def__del__

(self):

myclass.count-=1

defsayhello(self):

print

'hello %s'%

self.namec =

myclass(

'dhuang1')

c.sayhello()

print

myclass.count

print

c.countd =

myclass(

'dhuang2')

d.sayhello()

print

myclass.count

print

d.count

c.__del__

()print

myclass.count

print

d.count

變數count的作用域為整個類,你可以理解它為全域性變更。因為呼叫它的方式也有點特別(類呼叫),當然物件的方式呼叫也是沒有問題的。

在這個類裡面還有__del__的方法,它也是內建的方法,和__init__的作用剛好相反,當物件銷毀的時候呼叫它做一些清理工作。

c 筆記(八) 類

類,物件,類成員 字段 方法 用類建立乙個物件,用new運算子,類裡面用來描述特徵的變數稱為這個類的字段 car car new car 使用物件呼叫欄位時,用點運算子得到欄位並賦值,如果在類外部使用欄位時,字段一定用public修飾 red 100.5 bmw 用點運算子點出來的成員,前面如果是 ...

C 程式設計筆記 part 1

c 物件導向程式設計 第三版 杜茂康等編 c how to program,ninth edition p.deitel h.deitel 測試1 由於char只讀取乙個資料,那麼考慮如下 int main 結果為輸出 3 4以及 3 45再考慮連續輸入 cin a b 與一般的輸入方式沒有區別。注...

Python學習筆記 part1 資料型別

單引號 hello hello word print hello 雙引號 hello hello word print hello 三引號可換行 hello hello word print hello 字串既有單引號又有雙引號時可以用三引號 hello it s good print hello ...