python新式類和經(jīng)典類的區(qū)別實例分析
本文實例講述了python新式類和經(jīng)典類的區(qū)別。分享給大家供大家參考,具體如下:
新式類就是 class person(object): 這種形式的, 從py2.2 開始出現(xiàn)的
新式類添加了:
__name__ is the attribute's name.
__doc__ is the attribute's docstring.
__get__(object) is a method that retrieves the attribute value from object.
__set__(object, value) sets the attribute on object to value.
__delete__(object, value) deletes the value attribute of object.
新式類的出現(xiàn), 除了添加了大量方法以外, 還改變了經(jīng)典類中一個多繼承的bug, 因為其采用了廣度優(yōu)先的算法
Python 2.x中默認都是經(jīng)典類,只有顯式繼承了object才是新式類
python 3.x中默認都是新式類,經(jīng)典類被移除,不必顯式的繼承object
粘貼一段官網(wǎng)上的作者解釋

是說經(jīng)典類中如果都有save方法, C中重寫了save() 方法, 那么尋找順序是 D->B->A, 永遠找不到C.save()
代碼演示:
#!/usr/bin/env python3
#coding:utf-8
'''
新式類和經(jīng)典類的區(qū)別, 多繼承代碼演示
'''
class A:
def __init__(self):
print 'this is A'
def save(self):
print 'save method from A'
class B:
def __init__(self):
print 'this is B'
class C:
def __init__(self):
print 'this is c'
def save(self):
print 'save method from C'
class D(B, C):
def __init__(self):
print 'this is D'
d = D()
d.save()
結(jié)果顯示
this is D
save method from C
注意: 在python3 以后的版本中, 默認使用了新式類, 是不會成功的
另外: 經(jīng)典類中所有的特性都是可讀可寫的, 新式類中的特性只讀的, 想要修改需要添加 @Texing.setter
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關(guān)文章
jupyter notebook 使用過程中python莫名崩潰的原因及解決方式
這篇文章主要介紹了jupyter notebook 使用過程中python莫名崩潰的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
django如何根據(jù)現(xiàn)有數(shù)據(jù)庫表生成model詳解
這篇文章主要給大家介紹了關(guān)于django如何根據(jù)現(xiàn)有數(shù)據(jù)庫表生成model的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友可以參考下2022-08-08
VSCode搭建Django開發(fā)環(huán)境的圖文步驟
本篇介紹在vscode環(huán)境下搭建Django開發(fā)環(huán)境的詳細步驟,包括Python、Django、VSCode等,以及它們的安裝和配置方法,具有一定的參考價值,感興趣的可以了解一下2023-09-09
linux平臺使用Python制作BT種子并獲取BT種子信息的方法
這篇文章主要介紹了linux平臺使用Python制作BT種子并獲取BT種子信息的方法,結(jié)合實例形式詳細分析了Python BT模塊的安裝及針對BT種子文件的相關(guān)操作技巧,需要的朋友可以參考下2017-01-01
Python 實現(xiàn)數(shù)據(jù)庫更新腳本的生成方法
下面小編就為大家?guī)硪黄狿ython 實現(xiàn)數(shù)據(jù)庫更新腳本的生成方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Python數(shù)據(jù)類型最全知識總結(jié)
學習一門語言,往往都是從Hello World開始. 但是筆者認為,在一個黑框框中輸出一個“你好,世界”并沒有什么了不起,要看透事物的本質(zhì),熟悉一門語言,就要了解其底層,就是我們常常說的基礎,本篇從python中的數(shù)據(jù)類型開始,需要的朋友可以參考下2021-05-05

