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

Google開(kāi)源的Python格式化工具YAPF的安裝和使用教程

 更新時(shí)間:2016年05月31日 17:05:57   作者:wwt  
Google的開(kāi)發(fā)者文檔中有一套Python的代碼書(shū)寫(xiě)規(guī)范,而在GitHub上同樣開(kāi)源了一款名為YAPF的命令行程序用作Python的格式化,下面我們就來(lái)看下這款Google開(kāi)源的Python格式化工具YAPF的安裝和使用教程

目前用于Python的格式化程序(如autopep8和pep8ify)都用于刪除代碼中的lint錯(cuò)誤。這有很明顯的局限性。
YAPF采用了不同的方法,基于Daniel Jasper開(kāi)發(fā)的“'clang-format”。從本質(zhì)上來(lái)說(shuō),該算法取走代碼并重新排版,以符合樣式指南的最佳格式,即便原始代碼沒(méi)有違反樣式指南。這個(gè)想法也是類(lèi)似于Go編程語(yǔ)言的gofmt工具。
其最終目標(biāo)是讓YAPE所產(chǎn)生的代碼可以與程序員所寫(xiě)的代碼一樣好(前提是程序員遵循樣式指南),它取代了一些維護(hù)代碼的苦差。

安裝
可以直接通過(guò)pip進(jìn)行安裝:

pip install yapf

如果你打算使用YAPF作為一個(gè)命令行工具,而不是一個(gè)庫(kù),那么安裝是沒(méi)有必要的。通過(guò)Python解釋器,YAPF可以作為一個(gè)目錄運(yùn)行。如果你克隆/解壓YAPF到DIR,可以這么運(yùn)行:

$ PYTHONPATH=DIR python DIR/yapf [options] ...

YAPF的使用
安裝完成之后,就可以直接在命令行中使用了。 以下是yapf的命令行參數(shù):

usage: yapf [-h] [--style STYLE] [-d | -i] [-l START-END | -r] ...

Formatter for Python code.

positional arguments:
 files

optional arguments:
 -h, --help   顯示幫助信息
 --style STYLE   指定需要格式化的編程風(fēng)格,如pep8或者google等
      也可以是自定義的設(shè)置文件。默認(rèn)是pep8
 -d, --diff   比較格式化后的文件和原文件的區(qū)別
 -i, --in-place  直接把格式化的文件更改在源文件上
 -l START-END, --lines START-END
      指定格式化的行的范圍
 -r, --recursive  在目錄中遞歸運(yùn)行

格式樣式
使用YPF的格式樣式是可以配置的,并且有許多“knobs”可用于調(diào)整YAPF是如何做格式的。(查看style.py模塊)
為了控制樣式,運(yùn)行帶有--style的YAPF。它接受一個(gè)預(yù)定義的樣式(例如pep8或google)——一個(gè)通往配置文件(能指定所需樣式或一個(gè)鍵/值對(duì)的字典)的途徑。
配置文件是一個(gè)簡(jiǎn)單的鍵=值對(duì)的列表(區(qū)分大小寫(xiě)),擁有一個(gè)【style】,例如:

2016531170134280.png (492×107)

當(dāng)然也可以通過(guò)字典在命令行上做出同樣的事情,例如:
--style='{basedonstyle: google, indent_width: 4}'
這將用google作為基礎(chǔ)樣式,并修改成擁有4個(gè)空格縮進(jìn)。

例子
以下是一段非常ugly的代碼:

x = { 'a':37,'b':42,

'c':927}

y = 'hello ''world'
z = 'hello '+'world'
a = 'hello {}'.format('world')
class foo (  object ):
 def f (self ):
 return  37*-+2
 def g(self, x,y=42):
  return y
def f ( a ) :
 return  37+-+a[42-x : y**3]

利用yapf將它格式化:

x = {'a': 37, 'b': 42, 'c': 927}

y = 'hello ' 'world'
z = 'hello ' + 'world'
a = 'hello {}'.format('world')


class foo(object):
 def f(self):
  return 37 * -+2

 def g(self, x, y=42):
  return y


def f(a):
 return 37 + -+a[42 - x:y ** 3]

好看很多!

另外,YAPF在格式化的時(shí)候仍然有一些問(wèn)題。如:

BAZ = {
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12]
}

當(dāng)有一大段內(nèi)容的時(shí)候,我們都習(xí)慣分行排列,因?yàn)檫@顯然更方便我們閱讀。但是,使用YAPF格式化后:

BAZ = {[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]}

遇到這種情況,YAPF也提供了解決的方法,就是在代碼段的后面加上: # yapf: disable

BAZ = {
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12]
} # yapf: disable

所以,YAPF是一個(gè)非常有用的工具,它可以幫助你將代碼變得更加一致、更加容易閱讀并且Pythonic。

相關(guān)文章

  • python用700行代碼實(shí)現(xiàn)http客戶(hù)端

    python用700行代碼實(shí)現(xiàn)http客戶(hù)端

    這篇文章主要介紹了python用700行代碼實(shí)現(xiàn)http客戶(hù)端的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python中多進(jìn)程處理的Process和Pool的用法詳解

    Python中多進(jìn)程處理的Process和Pool的用法詳解

    在Python編程中,多進(jìn)程是一種強(qiáng)大的并行處理技術(shù),Python提供了兩種主要的多進(jìn)程處理方式:Process和Pool,本文將詳細(xì)介紹這兩種方式的使用,希望對(duì)大家有所幫助
    2024-02-02
  • Python文本終端GUI框架示例詳細(xì)講解

    Python文本終端GUI框架示例詳細(xì)講解

    GUI,全稱(chēng)為圖形用戶(hù)界面,又稱(chēng)為圖形用戶(hù)接口,是一種人與計(jì)算機(jī)通信的界面顯示格式。那么Python常用GUI框架有哪些呢?我們來(lái)看看具體介紹
    2022-11-11
  • Pytorch框架之one_hot編碼函數(shù)解讀

    Pytorch框架之one_hot編碼函數(shù)解讀

    這篇文章主要介紹了Pytorch框架之one_hot編碼函數(shù)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解python配置虛擬環(huán)境

    詳解python配置虛擬環(huán)境

    這篇文章主要介紹了python配置虛擬環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • numpy中np.sort返回索引的具體使用

    numpy中np.sort返回索引的具體使用

    本文主要介紹了使用numpy中np.sort函數(shù)返回索引的詳細(xì)解釋和使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python數(shù)據(jù)庫(kù)操作指南之PyMysql使用詳解

    python數(shù)據(jù)庫(kù)操作指南之PyMysql使用詳解

    PyMySQL是在Python3.x版本中用于連接MySQL服務(wù)器的一個(gè)庫(kù),Python2 中則使用mysqldb,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)庫(kù)操作指南之PyMysql使用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 使用Python下載歌詞并嵌入歌曲文件中的實(shí)現(xiàn)代碼

    使用Python下載歌詞并嵌入歌曲文件中的實(shí)現(xiàn)代碼

    這篇文章主要介紹了使用Python下載歌詞并嵌入歌曲文件中的實(shí)現(xiàn)代碼,需要借助eyed3模塊,需要的朋友可以參考下
    2015-11-11
  • Python使用正則實(shí)現(xiàn)計(jì)算字符串算式

    Python使用正則實(shí)現(xiàn)計(jì)算字符串算式

    這篇文章主要介紹了Python使用正則實(shí)現(xiàn)計(jì)算字符串算式的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • python 編碼規(guī)范整理

    python 編碼規(guī)范整理

    這篇文章主要介紹了python 編碼規(guī)范整理,需要的朋友可以參考下
    2018-05-05

最新評(píng)論

明水县| 贵德县| 乌什县| 如皋市| 宁化县| 虞城县| 克东县| 巴南区| 福安市| 宁河县| 临漳县| 安龙县| 正镶白旗| 隆昌县| 阜阳市| 青海省| 萍乡市| 诏安县| 墨竹工卡县| 揭西县| 库车县| 和平县| 合山市| 荃湾区| 牡丹江市| 利津县| 铜鼓县| 梁平县| 同仁县| 新龙县| 新巴尔虎右旗| 新巴尔虎右旗| 黎川县| 阿拉善盟| 辛集市| 皮山县| 宜宾市| 鹿邑县| 九龙城区| 城步| 宁德市|