class
myclass:
pass
python中最簡單的類,pass表示什麼也不做。現在在這個類裡加乙個方法:
class
myclass:
defsayhello(self):
'hello'c
=myclass()
c.sayhello()
唯一要注意的地方是sayhello方法帶了乙個引數self,這是個保留字,指向本身。但是在呼叫這個方法的時候不用顯示加上這個引數,如果加上這個引數的話會報異常。
進一步的來補充這個類,讓它能做更多的事情
class
myclass:
def__init__
(self,name):
self.name
=name
defsayhello(self):
'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):
'hello %s'%
self.namec =
myclass(
'dhuang1')
c.sayhello()
myclass.count
c.countd =
myclass(
'dhuang2')
d.sayhello()
myclass.count
d.count
c.__del__
myclass.count
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 ...