python筆記6:模組

來源:互聯網
上載者:User

標籤:func   代碼   mod   3.x   檔案   轉換   操作   base   too   

6. 模組(一個 .py 檔案稱為一個模組Module)

import 語句
類似 _xxx 和 __xxx 這樣的 函數/變數 是非公開的(private),不應該被直接引用
函數定義: 外部不需要引用的函數全部定義成private,只有外部需要引用的函數才定義為public。
執行個體屬性和類屬性
千萬不要把執行個體屬性和類屬性使用相同的名字,因為相同名稱的執行個體屬性將屏蔽掉類屬性,但是當你刪除執行個體屬性後,再使用相同的名稱,訪問到的將是類屬性。

@property裝飾器 --簡化代碼,避免每個函數編寫重複的代碼 python 裝飾模式--可對函數、方法或類進行裝飾
**案例1(不帶參數的decorator,兩層嵌套):

import functools #匯入functools包def log(func):@functools.wraps(func) #wrapper.__name__ = func.__name__ def wrapper(*args, **kw): #wrapper可接收任意參數的調用print ‘call %s():‘ % func.__name__ #在運行 func() 函數前列印一行日誌return func(*args, **kw)return wrapper@log #等價於執行 now = log(now)def now(): #調用 now() 將執行在 log() 函數中返回的 wrapper() 函數print ‘2013-12-25

**案例2(帶參數的decorator,三層嵌套):

import functoolsdef log(text): #第一層嵌套def decorator(func): #第二層嵌套@functools.wraps(func)def wrapper(*args, **kw): #第三層嵌套print ‘%s %s():‘ % (text, func.__name__) #在運行 func() 函數前列印一行帶參數的日誌return func(*args, **kw)return wrapperreturn decorator@log(‘execute‘) #等價於執行 now = log(‘execute‘)(now)def now():print ‘2013-12-25‘

偏函數(Partial function): 結合預設參數理解
--> 設定某些參數的預設值,並返回一個新的函數,之後調用這個新函數會更便於操作。
案例對比:

def int2(x, base=2): #傳統方法return int(x, base)
import functools #採用偏函數方法int2 = functools.partial(int, base=2) #二進位轉換

__future__
案例:在Python 2.7的代碼中直接使用Python 3.x的除法,可以通過 __future__ 模組的 division 實現
from __future__ import division

python筆記6:模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.