一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Yapf:一個(gè)格式化 Python 代碼的好幫手

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-17 11:08 ? 次閱讀

大部分人使用Python中的代碼格式化工具時(shí)都會(huì)選擇autopep8之類的工具,這些工具可能有一定的局限性,比如不會(huì)重新格式化已經(jīng)符合 PEP8 的代碼。

而本文即將介紹的 Yapf,不僅能將代碼格式化為符合 PEP8 代碼指南的格式,還能格式化為符合 Google 代碼指南的格式,可選項(xiàng)更多,讓你的代碼更加漂亮。

1.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install yapf

YAPF 支持 Python 2.7 和 3.6.4+。

2.Yapf 使用方法

你可以在命令行中直接使用 Yapf, 參數(shù)如下:

yapf [-h] [-v] [-d | -i | -q] [-r | -l START-END] [-e PATTERN]
            [--style STYLE] [--style-help] [--no-local-style] [-p]
            [-vv]
            [files ...]

必選參數(shù):

files 需要被格式化的文件

可選參數(shù):
-h, --help 顯示幫助信息
-v, --version 顯示程序的版本號(hào)
-d, --diff 打印格式化前后差異
-i, --in-place 格式化文件并替換
-q, --quiet 什么都不輸出
-r, --recursive 在目錄上遞歸運(yùn)行
-l START-END, --lines START-END 重新格式化的行范圍,基于一個(gè)
-e PATTERN, --exclude PATTERN 需要排除的文件
--style STYLE 指定格式化樣式(例如“pep8”或“google”)
-p, --parallel 并行格式化(多個(gè)文件時(shí)有效)
-vv, --verbose 在處理時(shí)打印出文件名

舉個(gè)例子,如果我們有以下的混亂格式代碼 1.py :

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]

為了格式化它,我們可以在命令行中執(zhí)行以下命令:

yapf -i 1.py

效果如下:

圖片

3.Yapf 作為模塊使用

Yapf 不僅可以在命令行中使用,我們還可以在項(xiàng)目運(yùn)行時(shí)使用。

一個(gè)比較常見的場景是用戶在你的web網(wǎng)站上提交了python代碼,你希望能一件格式化這些代碼,那將yapf作為格式化的模塊則再好不過。

Yapf 最主要的兩個(gè) API 是 FormatCode 和 FormatFile:

from yapf.yapflib.yapf_api import FormatCode

formatted_code, changed = FormatCode("f ( a = 1, b = 2 )")
print(formatted_code)
# 'f(a=1, b=2)n'
print(changed)
# True

你還可以傳遞 style_config 決定使用哪種指南做格式化:

from yapf.yapflib.yapf_api import FormatCode

print(FormatCode("def g():n return True", style_config='pep8')[0])
# 'def g():n return Truen'

FormatFile,這個(gè)函數(shù)可以從文件中讀取代碼并格式化:

from yapf.yapflib.yapf_api import FormatFile
print(open("foo.py").read())
# a==b
reformatted_code, encoding, changed = FormatFile("foo.py")
print(formatted_code)
# 'a == bn'
print(encoding)
# 'utf-8'
print(changed)
# True

如果你添加in_place參數(shù),它將把格式化后的代碼寫回文件中:

from yapf.yapflib.yapf_api import FormatFile
print(FormatFile("foo.py", in_place=True)[:2])
# (None, 'utf-8')

print(open("foo.py").read())
# a == b
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 格式化
    +關(guān)注

    關(guān)注

    2

    文章

    39

    瀏覽量

    9253
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4880

    瀏覽量

    69995
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    812

    瀏覽量

    31630
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85855
收藏 人收藏

    評論

    相關(guān)推薦

    MDK使用AStyle進(jìn)行代碼自動(dòng)格式化

    MDK使用AStyle進(jìn)行代碼自動(dòng)格式化
    的頭像 發(fā)表于 09-19 14:22 ?4161次閱讀
    MDK使用AStyle進(jìn)行<b class='flag-5'>代碼</b>自動(dòng)<b class='flag-5'>格式化</b>

    2.6 python字符串格式化

    2.6 python字符串格式化格式化輸出,主要有三種方式使用 % 進(jìn)行格式化使用 format 函數(shù)進(jìn)行格式化使用 f-string 進(jìn)行
    發(fā)表于 02-21 16:28

    說MounRiver Studio的代碼格式化

    MounRiver Studio具有代碼格式化功能,方法是右鍵選擇某個(gè)c文件,點(diǎn)擊“代碼格式化”即可。這個(gè)功能只針對某個(gè)c或h文件,鍵全工
    發(fā)表于 05-12 09:08

    格式化硬盤

    格式化硬盤 軟盤只需要格式化,硬盤卻需要兩級(jí),即低級(jí)格式化和高級(jí)格式化?! ∮脖P的低級(jí)格式化
    發(fā)表于 12-25 15:40 ?1115次閱讀

    筆記本硬盤維護(hù)之格式化

    筆記本硬盤維護(hù)之格式化篇   格式化硬盤(并非低格)會(huì)影響硬盤壽命嗎?用Windows對硬盤進(jìn)行格式化與對軟盤進(jìn)行格式化原理
    發(fā)表于 01-20 10:32 ?392次閱讀

    如何格式化硬盤

    如何格式化硬盤    這是廣大電腦初學(xué)者經(jīng)常詢問的問題,因?yàn)?b class='flag-5'>格式化硬盤是安裝裝系統(tǒng)的前提,所以這就成為了需要首先解決的問題,本文將針這個(gè)
    發(fā)表于 02-24 11:25 ?541次閱讀

    CoolFormat3.2C語言代碼格式化工具

    CoolFormat3.2,將C語言代碼格式化的工具。
    發(fā)表于 05-20 17:01 ?20次下載

    格式化對硬盤有傷害嗎_硬盤格式化后數(shù)據(jù)還能恢復(fù)嗎

    普通的格式化硬盤是不會(huì)影響硬盤壽命的。硬盤格式化后數(shù)據(jù)還能恢復(fù)嗎?下面就來看看使用強(qiáng)力數(shù)據(jù)是如何將格式化后的數(shù)據(jù)給恢復(fù)的吧。
    發(fā)表于 12-14 16:09 ?1.7w次閱讀

    格式化是什么

    格式化(format)是指對磁盤或磁盤中的分區(qū)(partition)進(jìn)行初始種操作,這種操作通常會(huì)導(dǎo)致現(xiàn)有的磁盤或分區(qū)中所有的文件被清除。格式化通常分為低級(jí)
    的頭像 發(fā)表于 01-09 15:20 ?8.7w次閱讀

    關(guān)于MDK-ARM代碼格式化插件AStyle

    MDK-ARM代碼格式化插件AStyle
    的頭像 發(fā)表于 03-07 16:34 ?2661次閱讀

    python字符串格式化

    python字符串格式化 格式化輸出,主要有三種方式 使用 % 進(jìn)行格式化 使用 format 函數(shù)進(jìn)行格式化 使用 f-string 進(jìn)行
    的頭像 發(fā)表于 02-21 16:28 ?1737次閱讀
    <b class='flag-5'>python</b>字符串<b class='flag-5'>格式化</b>

    如何使用 Java 原生格式化Instant

    今天我們將聊聊如何在Java中把個(gè) Instant 格式化一個(gè)字符串。我們將展示如何使用 Java 原生和第三方庫(如Joda-Time)來處理這個(gè)事情。 使用 Java 原生
    的頭像 發(fā)表于 10-09 14:51 ?1511次閱讀

    如何用行命令格式化 Python 代碼

    統(tǒng)代碼規(guī)范??!然而這顯然是不可能的。 不過雖然無法改變他人,但我們可以改變自己?,F(xiàn)在有了Black這個(gè)神器,我們可以在終端中輸入句命令自動(dòng)使用最規(guī)范的代碼風(fēng)格來
    的頭像 發(fā)表于 10-31 10:35 ?782次閱讀
    如何用<b class='flag-5'>一</b>行命令<b class='flag-5'>格式化</b> <b class='flag-5'>Python</b> <b class='flag-5'>代碼</b>

    基于Python 超簡單格式化代碼

    統(tǒng)代碼規(guī)范??!然而這顯然是不可能的。 不過雖然無法改變他人,但我們可以改變自己?,F(xiàn)在有了Black這個(gè)神器,我們可以在終端中輸入句命令自動(dòng)使用最規(guī)范的代碼風(fēng)格來
    的頭像 發(fā)表于 11-01 11:27 ?693次閱讀
    基于<b class='flag-5'>Python</b> 超簡單<b class='flag-5'>格式化</b><b class='flag-5'>代碼</b>

    Black:自動(dòng)格式化代碼的神器

    代碼規(guī)范??! 沒事,現(xiàn)在有Black這個(gè)神器,我們可以在終端中輸入句命令就自動(dòng)格式化代碼!而且對于初學(xué)者來說,用Black來學(xué)習(xí)代碼規(guī)范也
    的頭像 發(fā)表于 11-02 14:51 ?1627次閱讀
    Black:自動(dòng)<b class='flag-5'>格式化</b><b class='flag-5'>代碼</b>的神器