Python繼承的一個筆記

 1 class Post():
 2 
 3     def __init__(self):
 4         self.title = 'org'
 5         self.__decodeTitle();
 6 
 7   
 8     def __decodeTitle(self):
 9        self.title = "title1";
10        
11 class Post2(Post):
12 
13     def __init__(self):
14         Post.__init__(self);
15     def __decodeTitle(self):
16        self.title = "title2";
17        
18 post = Post()
19 print(post.title)
20 
21 post2 = Post2()
22 print(post2.title)

運行結果:python

title1post

title1spa

熟悉C#程序的我,這段程序給我形成深深的困擾.第二個輸出title1,豈不是python中繼承多態的特色無法使用??????code

後來,我才發現是我多慮了.blog

 1 class Post():
 2 
 3     def __init__(self):
 4         self.title = 'org'
 5         self.decodeTitle();
 6 
 7   
 8     def decodeTitle(self):
 9        self.title = "title1";
10        
11 class Post2(Post):
12 
13     def __init__(self):
14         Post.__init__(self);
15     def decodeTitle(self):
16        self.title = "title2";
17        
18 post = Post()
19 print(post.title)
20 
21 post2 = Post2()
22 print(post2.title)

這樣就會輸出繼承

title1編譯器

title2.it

個人理解就是 __decodeTitle這個方法是私有的,根本不能繼承下來.編譯

我寫這段代碼的時候哦,用的記事本些的,沒有報錯.沒有警告,因此讓我困惑了很久.class

我不知道其餘的編譯器遇到這種會不會有提示什麼的.

相關文章
相關標籤/搜索