中穀教育Python視頻教程資源推薦

來源:互聯網
上載者:User
《中穀教育Python視頻教程》講的是Python開發的入門教程,它將介紹Python語言的特點和適用範圍,Python基本的資料類型,條件判斷和迴圈,函數,以及Python特有的切片和列表產生式。希望本python教程能夠讓您快速入門並編寫簡單的Python程式。

課程播放地址:http://www.php.cn/course/501.html

該老師講課風格:

教師講課深入淺出,條理清楚,層層剖析,環環相扣,論證嚴密,結構嚴謹,用思維的邏輯力量吸引學生的注意力,用理智控制課堂教學進程。學生通過聽教師的講授,不僅學到知識,也受到思維的訓練,還受到教師嚴謹的治學態度的熏陶和感染

本視頻中較為痛點是物件導向-類和對象了:

Python中一切都是對象。類提供了建立新類型對象的機制。這篇教程中,我們不談類和物件導向的基本知識,而專註在更好地理解Python物件導向編程上。假設我們使用新風格的python類,它們繼承自object父類。
定義類

class 語句可以定義一系列的屬性、變數、方法,他們被該類的執行個體對象所共用。下面給出一個簡單類定義:

class Account(object):  num_accounts = 0    def __init__(self, name, balance):   self.name = name   self.balance = balance   Account.num_accounts += 1    def del_account(self):   Account.num_accounts -= 1    def deposit(self, amt):   self.balance = self.balance + amt    def withdraw(self, amt):   self.balance = self.balance - amt    def inquiry(self):   return self.balance


類定義引入了以下新對象:

類對象
執行個體對象
方法對象

類對象

程式執行過程中遇到類定義時,就會建立新的命名空間,命名空間包含所有類變數和方法定義的名稱綁定。注意該命名空間並沒有建立類方法可以使用的新局部範圍,因此在方法中訪問變數需要全限定名稱。上一節的Account類示範了該特性;嘗試訪問num_of_accounts變數的方法需要使用全限定名稱Account.num_of_accounts,否則,如果沒有在__init__方法中使用全限定名稱,會引發如下錯誤:

class Account(object): num_accounts = 0   def __init__(self, name, balance):  self.name = name  self.balance = balance  num_accounts += 1   def del_account(self):  Account.num_accounts -= 1   def deposit(self, amt):  self.balance = self.balance + amt   def withdraw(self, amt):  self.balance = self.balance - amt   def inquiry(self):  return self.balance  >>> acct = Account('obi', 10)Traceback (most recent call last): File "python", line 1, in <module> File "python", line 9, in __init__UnboundLocalError: local variable 'num_accounts' referenced before assignment

類定義執行的最後,會建立一個類對象。在進入類定義之前有效那個範圍現在被恢複了,同時類對象被綁定到類定義頭的類名上。

先偏離下話題,你可能會問如果建立的類是對象,那麼類對象的類是什麼呢?。與一切都是對象的python哲學一致,類對象確實有個類,即python新風格類中的type類。

>>> type(Account)<class 'type'>

讓你更迷惑一點,Account類型的類型是type。type類是個元類,用於建立其他類,我們稍後教程中再介紹。

類對象支援屬性引用和執行個體化。屬性通過標準的點文法引用,即對象後跟句點,然後是屬性名稱:obj.name。有效屬性名稱是類對象建立後類命名空間中出現的所有變數和方法名。例如:

>>> Account.num_accounts>>> 0>>> Account.deposit>>> <unbound method Account.deposit>

類執行個體化使用函數標記法。執行個體化會像普通函數一樣無參數調用類對象,如下文中的Account類:

>>> Account()

類對象執行個體化之後,會返回執行個體對象,如果類中定義了__init__方法,就會調用,執行個體對象作為第一個參數傳遞過去。這個方法會進行使用者自訂的初始化過程,比如執行個體變數的初始化。Account類為例,賬戶name和balance會被設定,執行個體對象的數目增加1。
執行個體對象

如果類對象是餅乾切割刀,餅乾就是執行個體化類對象的結果。執行個體對象上的全部有效操作為對屬性、資料和方法對象的引用。
方法對象

方法對象和函數對象類似。如果x是Account類的執行個體,x.deposit就是方法對象的例子。方法定義中有個附加參數,self。self指向類執行個體。為什麼我們需要把執行個體作為參數傳遞給方法?方法調用能最好地說明:

>>> x = Account()>>> x.inquiry()10

執行個體方法調用時發生了什嗎?你應該注意到x.inquiry()調用時沒有參數,雖然方法定義包含self參數。那麼這個參數到底發生了什嗎?

特殊之處在於方法所作用的對象被作為函數的第一個參數傳遞過去。在我們的例子中,對x.inquiry()的調用等價於Account.f(x)。一般,調用n參數的方法等同於將方法的作用對象插入到第一個參數位置。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.