
16個你絕不知道的Python神奇技能
文 | Andrew Liu
顯示有限的接口到外部
當發(fā)布python第三方package時, 并不希望代碼中所有的函數(shù)或者class可以被外部import, 在__init__.py中添加__all__屬性,
該list中填寫可以import的類或者函數(shù)名, 可以起到限制的import的作用, 防止外部import其他函數(shù)或者類
with的魔力
with語句需要支持上下文管理協(xié)議的對象, 上下文管理協(xié)議包含__enter__和__exit__兩個方法. with語句建立運行時上下文需要通過這兩個方法執(zhí)行進入和退出操作.
其中上下文表達式是跟在with之后的表達式, 該表示大返回一個上下文管理對象
詳細原理可以查看這篇文章, 淺談 Python 的 with 語句
知道具體原理, 我們可以自定義支持上下文管理協(xié)議的類, 類中實現(xiàn)__enter__和__exit__方法
執(zhí)行結果如下:
證明了會先執(zhí)行__enter__方法, 然后調用with內的邏輯, 最后執(zhí)行__exit__做退出處理, 并且, 即使出現(xiàn)異常也能正常退出
filter的用法
相對filter而言, map和reduce使用的會更頻繁一些, filter正如其名字, 按照某種規(guī)則過濾掉一些元素
一行作判斷
當條件滿足時, 返回的為等號后面的變量, 否則返回else后語句
裝飾器之單例
使用裝飾器實現(xiàn)簡單的單例模式
staticmethod裝飾器
·
類中兩種常用的裝飾, 首先區(qū)分一下他們
·
·
普通成員函數(shù), 其中第一個隱式參數(shù)為對象
·
·
classmethod裝飾器, 類方法(給人感覺非常類似于OC中的類方法), 其中第一個隱式參數(shù)為類
·
·
staticmethod裝飾器, 沒有任何隱式參數(shù). python中的靜態(tài)方法類似與C++中的靜態(tài)方法
·
property裝飾器
定義私有類屬性
將property與裝飾器結合實現(xiàn)屬性私有化(更簡單安全的實現(xiàn)get和set方法)
fget是獲取屬性的值的函數(shù),fset是設置屬性值的函數(shù),fdel是刪除屬性的函數(shù),doc是一個字符串(like a comment).從實現(xiàn)來看,這些參數(shù)都是可選的
property有三個方法getter(), setter()和delete() 來指定fget, fset和fdel。 這表示以下這行
iter魔法
通過yield和__iter__的結合, 我們可以把一個對象變成可迭代的
通過__str__的重寫, 可以直接通過想要的形式打印對象
神奇partial
partial使用上很像C++中仿函數(shù)(函數(shù)對象).
在stackoverflow給出了類似與partial的運行方式
利用用閉包的特性綁定預先綁定一些函數(shù)參數(shù), 返回一個可調用的變量, 直到真正的調用執(zhí)行
神秘eval
eval我理解為一種內嵌的python解釋器(這種解釋可能會有偏差), 會解釋字符串為對應的代碼并執(zhí)行, 并且將執(zhí)行結果返回
看一下下面這個例子
exec
·
exec在Python中會忽略返回值, 總是返回None, eval會返回執(zhí)行代碼或語句的返回值
·
·
exec和eval在執(zhí)行代碼時, 除了返回值其他行為都相同
·
·
在傳入字符串時, 會使用compile(source, '<string>', mode)編譯字節(jié)碼. mode的取值為exec和eval
·
getattr
getattr(object, name[, default])Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example, getattr(x, ‘foobar’) is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.
通過string類型的name, 返回對象的name屬性(方法)對應的值, 如果屬性不存在, 則返回默認值, 相當于object.name
命令行處理
讀寫csv文件
各種時間形式轉換
只發(fā)一張網(wǎng)上的圖, 然后差文檔就好了, 這個是記不住的
字符串格式化
一個非常好用, 很多人又不知道的功能
來自:http://andrewliu.in/2015/11/14/Python%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03