最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中規(guī)范定義命名空間的一些建議

 更新時(shí)間:2016年06月04日 12:03:17   作者:mattkang  
命名空間是Python程序的一大根本,編程時(shí)持命名空間的整潔還是十分必要的,這里就來(lái)為大家總結(jié)Python中規(guī)范定義命名空間的一些建議,需要的朋友可以參考下

API的設(shè)計(jì)是一個(gè)藝術(shù)活。往往需要其簡(jiǎn)單、易懂、整潔、不累贅。
很多時(shí)候,我們?cè)诘讓臃庋b一個(gè)方法給高層用,而其它的方法只是為了輔助這個(gè)方法的。
也就是說(shuō)我們只需要暴露這個(gè)方法就行,不用關(guān)心這個(gè)方法是怎么實(shí)現(xiàn)的,不用關(guān)心其它輔助方法的存在。
在Python中,有幾種策略來(lái)保持命名空間的整潔。

1.變量命名用下劃線_開(kāi)頭
下劃線_開(kāi)頭的變量在其它模塊from xxx import *的時(shí)候不被import。
如果你看decimal的源碼,就會(huì)發(fā)現(xiàn)多次把import 的模塊弄成下劃線_開(kāi)頭的別名。
http://hg.python.org/cpython/file/2.7/Lib/decimal.py
比如

import copy as _copy
import math as _math
import numbers as _numbers

這不是蛋疼,是為了不污染命名空間

2.定義__all__
python的魔術(shù)方法實(shí)在是靈活。
假設(shè)我模塊中有3個(gè)方法a(),b(),c()
我只是要暴露a而已,不需要暴露b和c。
這時(shí)__all__=[a]
在其它模塊from xxxmodule import *的時(shí)候就只import了a了。
而且在開(kāi)發(fā)者閱讀源碼的時(shí)候,看到了__all__,一下子就知道要暴露的是哪些方法,而不是一堆代碼無(wú)從下手。

3.在使用了這個(gè)變量后刪掉
通過(guò)del xxx刪掉。
這樣在dir(xxxmodule)的時(shí)候就減少了dir出來(lái)滿屏的變量了。
同樣在decimal的源碼,可以看到使用了正則表達(dá)式模塊re之后,用del re刪掉了。
還有一種方法就是把import語(yǔ)句放在函數(shù)內(nèi),將其限制在局部作用域中。感覺(jué)這種方法不pythonic,就不推薦了。

相關(guān)文章

  • django formset實(shí)現(xiàn)數(shù)據(jù)表的批量操作的示例代碼

    django formset實(shí)現(xiàn)數(shù)據(jù)表的批量操作的示例代碼

    這篇文章主要介紹了django-formset實(shí)現(xiàn)數(shù)據(jù)表的批量操作的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭

    Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭

    OpenCV用C++語(yǔ)言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實(shí)時(shí)視覺(jué)應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你了解OpenCV讀取圖像視頻與網(wǎng)絡(luò)攝像頭的方法
    2022-04-04
  • Django使用Channels實(shí)現(xiàn)WebSocket的方法

    Django使用Channels實(shí)現(xiàn)WebSocket的方法

    WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通訊的協(xié)議。WebSocket允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù)。這篇文章主要介紹了Django使用Channels實(shí)現(xiàn)WebSocket,需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例

    python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例

    本文主要介紹了python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • pytorch基礎(chǔ)之損失函數(shù)與反向傳播詳解

    pytorch基礎(chǔ)之損失函數(shù)與反向傳播詳解

    損失函數(shù)(Loss?Function)用于衡量神經(jīng)網(wǎng)絡(luò)輸出與目標(biāo)值之間的誤差,指導(dǎo)網(wǎng)絡(luò)通過(guò)反向傳播優(yōu)化參數(shù),常見(jiàn)的損失函數(shù)包括均方誤差和交叉熵誤差,在訓(xùn)練過(guò)程中,通過(guò)不斷最小化損失函數(shù)值來(lái)調(diào)整網(wǎng)絡(luò)權(quán)重,以期達(dá)到輸出接近目標(biāo)值的效果
    2024-09-09
  • python爬蟲---requests庫(kù)的用法詳解

    python爬蟲---requests庫(kù)的用法詳解

    requests是python實(shí)現(xiàn)的簡(jiǎn)單易用的HTTP庫(kù),使用起來(lái)比urllib簡(jiǎn)潔很多,這里就為大家分享一下
    2020-09-09
  • 一起解密Python中的*args和**kwargs無(wú)限可能的函數(shù)參數(shù)

    一起解密Python中的*args和**kwargs無(wú)限可能的函數(shù)參數(shù)

    這篇文章主要來(lái)跟大家一起解密Python中的*args和**kwargs無(wú)限可能的函數(shù)參數(shù)使用的靈活性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Selenium 模擬瀏覽器動(dòng)態(tài)加載頁(yè)面的實(shí)現(xiàn)方法

    Selenium 模擬瀏覽器動(dòng)態(tài)加載頁(yè)面的實(shí)現(xiàn)方法

    這篇文章主要介紹了Selenium 模擬瀏覽器動(dòng)態(tài)加載頁(yè)面的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python?socket如何解析HTTP請(qǐng)求內(nèi)容

    Python?socket如何解析HTTP請(qǐng)求內(nèi)容

    這篇文章主要介紹了Python?socket如何解析HTTP請(qǐng)求內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • pytorch中model.train()和model.eval()用法及說(shuō)明

    pytorch中model.train()和model.eval()用法及說(shuō)明

    在PyTorch中,model.train()用于啟用BatchNormalization和Dropout,保證模型在訓(xùn)練階段能夠有效地利用這些層的特性,而model.eval()則是用于測(cè)試階段,確保BatchNormalization和Dropout不會(huì)影響測(cè)試結(jié)果,保持模型的穩(wěn)定性
    2024-09-09

最新評(píng)論

景德镇市| 信阳市| 怀集县| 新龙县| 博白县| 富源县| 巍山| 南开区| 石林| 姚安县| 潮安县| 土默特右旗| 抚宁县| 永善县| 定远县| 城步| 迭部县| 郁南县| 文安县| 邯郸县| 靖州| 郯城县| 太仓市| 美姑县| 北辰区| 中牟县| 平南县| 金平| 九江县| 南宁市| 弥勒县| 综艺| 含山县| 万盛区| 六枝特区| 盘山县| 卫辉市| 南漳县| 大港区| 平乡县| 都安|