Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
140
|
4 章 物件導向的 Python
class A(object):
def met(self):
print('A.met')
class B(A):
def met(self):
print('B.met')
super(B,self).met()
class C(A):
def met(self):
print('C.met')
super(C,self).met()
class D(B,C):
def met(self):
print('D.met')
super(D,self).met()
v3 中,雖然 v2 的語法仍然可行(因此前面的程式碼片段可以順利運
作),但
super
的語意有經過強化,所以你可以將上面的每個
super
呼叫改
成不帶引數的
super()
現在,
D().met()
只會呼叫每個類別的
met
方法剛好一次。如果你養成永遠
都以
super
編寫超類別呼叫的習慣,那麼即使在複雜的繼承結構之下,你
的類別也能合作無礙。就算最後的繼承結構很簡單,也不會有什麼不良的
影響。
只有在各類別的同一個方法之特徵式(signatures)都不一樣且不相容的時
候,你才可能選用以未繫結方法語法來呼叫超類別方法的這種較粗略的做
法。這在許多方面都是令人不悅的情況,但如果你真的必須應付它,那麼
未繫結方法語法有的時候可能是最不險惡的了。多重繼承的正確使用本來
就阻礙重重,但即使是 OOP 最基本的特性,例如基礎類別和子類別實體之
間的多型(polymorphism),都會在你賦予超類別和子類別中同名方法不 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival

Publisher Resources

ISBN: 9789864766819