Python2 7中的super方法淺見

2021-08-03 21:36:54 字數 2631 閱讀 8394

重寫是繼承機制中的重要內容,對於構造方法尤為重要。構造方法用來初始化新建物件的狀態,大多數子類不僅要有自己的初始化**,還要擁有超類的初始化**。

如果乙個類的構造方法被重寫,那麼就需要呼叫超類的構造方法,否則物件可能不會被正確的初始化–python基礎教程

將上述思想進行實踐.

python 2.7

ide pycharm 5.0.3

當前,我們先定義乙個大的父類,用bird來建立,裡面有個構造方法和定義了兩個方法,分別是eat,sing方法,然後建立了乙個sparrow的子類,繼承自父類bird,自己也擁有構造方法,首先進行測試

class

bird:

def__init__

(self):

print

'我是父類的初始化'

self.cansing = true

defeat

(self):

print

'i can eat'

defsing

(self):

if self.cansing:

print

'i can sing'

class

sparrow

(bird):

def__init__

(self):

print

'我就是要重寫父類的init'

defjump

(self):

print

'i can jump'

s = sparrow()

s.jump()

s.eat()

s.sing()

class

bird:

def__init__

(self):

print

'我是父類的初始化'

self.cansing = true

defeat

(self):

print

'i can eat'

defsing

(self):

if self.cansing:

print

'i can sing'

class

sparrow

(bird):

def__init__

(self):

bird.__init__(self)

print

'我就是要重寫父類的init'

defjump

(self):

print

'i can jump'

s = sparrow()

s.jump()

s.eat()

s.sing()

__metaclass__ = type

完整**塊如下:

__metaclass__ = type

class

bird:

def__init__

(self):

print

'我是父類的初始化'

self.cansing = true

defeat

(self):

print

'i can eat'

defsing

(self):

if self.cansing:

print

'i can sing'

class

sparrow

(bird):

def__init__

(self):

super(sparrow,self).__init__()

print

'我就是要重寫父類的init'

defjump

(self):

print

'i can jump'

s = sparrow()

s.jump()

s.eat()

s.sing()

效果和上述採用未繫結的超類方法一樣,但是更加直觀。下面盜用一下為什麼super方法那麼超級:

即使類已經繼承多個超類,它也只需要使用一次super函式

6.29更新–關於tkinter中frame類是舊類的判斷

接觸tk,看著教程寫到:

def

__init__

(self, master=none):

frame.__init__(self, master)

想著能不能用super的方法呢,不是一直在提倡super麼,結果試了一下,

def

__init__

(self,master=none):

報錯:

typeerror: must be type, not classobj
結果檢視了一下父類frame型別;

in[3]: issubclass(frame, object)#判斷是否為新類

out[3]: false

顯示frame是舊類,所以不能和新類混著用,這裡記上一筆。

python2 7中文編碼 python2 7

我從外部api中獲得了乙個字串 u4ece u8d77 u70b9 u5411 u6b63 u5357 u65b9 u5411 u51fa u53d1,u884c u9a76170 u7c73,u76f4 u884c u8fdb u5165 u4e2d u5173 u6751 u4e1c u8def...

python2 7換行 Python2 7基礎語法

1.建立檔案xx.py usr bin python3 print hello,world 2.linux下執行 python hello.py 3.編碼 預設字串unicode 設定編碼 coding utf 8 4.識別符號 第乙個字元必須是字母表中字母或下劃線 識別符號的其他的部分有字母 數字...

python2 7是什麼 python2 7是什麼

pyton2.7是python在2010年發布的乙個版本。python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言,具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。下面來解釋一下python這門語言 python是一種...