Sargent的量化經濟學(8):Python工作原理
Python的工作原理:數據、變數和名稱
概覽
本講的目標是更深入理解Python的執行模塊
理解這些細節有助於我們將來編寫更大規模的程序
你也可以跳過這些內容,進入應用部分
我們提供這些內容主要是為了提供一份參考資料,讓你們能偶爾返回來看看這些內容,進而提升你們的Python技術
載體
在前面幾講,我們簡要地討論過載體
載體通常被認為是類的定義,且與數據和方法(函數)想結合
例如
創建了一個list,擁有不同的方法(append,pop,等)
Python里儲存的每一項都是一個載體
這不僅包括list,字元等,還包含一些隱含的東西,例如
函數(只要它們讀入內存)
模塊(ditto)
為讀寫而打開的文件
整數,等
在Python中,載體就是由計算機內存中的數據和指令所組成的集合,它們是由下列事項構成:
一種類型
一些內容
唯一的識別符
零或一些方法
這些概念將會在下面的內容中呈現
類別
Python理解和支持不同類別的載體,以適應不同類型的數據
一種載體類型是通過type(object_name)來定義
例如
載體的類別對許多表達式有重要影響
例如,兩個字元之間的加號表示串聯
另一方面,兩個數值之間的加號表示正常的加法
試試看下面的表達式
這是一種混合表達式,但是Python並不理解用戶想要做什麼
把 300 轉換整數,然後與400相加,或者
把400轉換成字元,然後與 300 串聯
其他一些語言可能會猜用戶的意圖,但Python則強烈依賴於類別
類別很重要,隱性類別轉換很罕見
Python會出現TypeError作為回應
為避免這種錯誤,你需要清晰聲明類別
例如
內容
載體的內容似乎是一種很明確的概念
例如,如果我們設立x=42,然後x的內容就是數值42
但是,事實上,它的含義要豐富得多,正如下面的例子所示
當Python創建整數載體時,它會儲存額外信息——例如,虛部——和類別
正如前面討論的,下面所有帶圓點的名稱都被稱為載體的屬性
例如,imag和__class__是x的屬性
識別符
在Python中,每一個載體都有唯一的識別符,這會幫助Python(和我們)追蹤載體
載體的識別符通過id()函數賦予
在該例中,y和z有相同的值(例如,2.5),但是它們並沒有相同的載體
載體的識別符事實上就是內存中載體的地址
方法
正如前面論述過,方法是捆綁在載體上的函數
正式來說,方法是載體的屬性
方法對包含在載體中的數據起作用
大量的Python函數都是以方法調用的形式出現
例如,考慮下列代碼
事實上,Python中稱為__setitem__方法,如下
更多內容,可參見https://lectures.quantecon.org/py/python_foundations.html
※純乾貨-超級實用的python小技巧
※Selenium中級篇之5-Python讀取配置文件內容
※Python培訓必知 python老鳥才知道的那些事
※深入理解 GIL:如何寫出高性能及線程安全的 Python 代碼
※【快學Python3】解析器
TAG:Python |
※Google Tensorflow Lite 8bit 量化論文
※最輕量化【街霸】: YZF-R3的Street Fighter變形計
※The North Face 推出輕量化 Mods Coat 雨衣
※AI量化:Python基礎
※輕量化藝術的傑出之作 Arcteryx Konseal FL接近鞋拼評測
※Galaxy Watch Active 三星輕量化智能手錶體驗
※恭喜VIP+RM學員斬獲Numerix紐約量化實習Offer!
※Python中的向量化編程
※Google論文解讀:輕量化卷積神經網路MobileNetV2
※耳機丨「無線、輕量化」Sennheiser CX Sport運動耳機
※全新輕量化 Baltoro&Deva開始預售!
※DBS Superleggera超輕量化了,而我還是胖的
※Python量化自動交易系統vnpy特訓營.東莞站
※用深度學習實現自然語言處理:word embedding,單詞向量化
※法國Prodways:DLP批量化和陶瓷3D列印技術詳解
※請進→Python量化策略學習營
※AJ 輕量化進程再次啟動!AJ20 Flyknit Melo 即將發售
※odin works輕量化競技魚骨賞析
※Python量化投資實戰班.上海站
※忍者回歸-Nike Air Rift 輕量化再登場