Autopep8的使用


Autopep8的使用

什么是Autopep8

在python開發中, 大家都知道,python編碼規范是PEP8,但是在市級開發中有的公司嚴格要求PEP8規范開發, 有的公司不會在乎那些,在我的理解中,程序員如果想走的更高,或者更遠,干任何事情必須得專業化(本人理解方式), 不要求很多東西都是精通,但最少得有一門精通的語言,小弟在此在大佬面前裝逼了, 忘看過的大牛不要揭穿, 留下你懂的我不懂的知識,大家一起學習,一起進步。 謝謝。

Autopep8是一個將python代碼自動編排的一個工具,它使用pep8工具來決定代碼中的那部分需要被排版,Autopep8可以修復大部分pep8工具中報告的排版問題。很多人都知道 Ctrl+Alt+L 也可以排版, 但是我要告訴你,快捷鍵只是可以簡單的排版。跟Autopep8是無法相比的。

安裝Autopep8:

pip install autopep8

安裝完成之后,import導入一下,測試是否安裝成功。

Aytopep8的使用

安裝完成之后,打開pycharm,創建一個新的python文件, demo.py 將一下代碼放入文件中。

[復制代碼](javascript:void(0)😉

def example1():
    some_tuple = (1, 2, 3, 'a')
    some_variable = {
        'long': 'Long code lines should be wrapped within 79 characters.',
        'other': [math.pi, 100, 200, 300, 9876543210,'This is a long string that goes on'],
        'more': { 'inner': 'This whole logical line should be wrapped.',some_tuple: [ 1,20, 300, 40000,500000000,60000000000000000]}}
    return (some_tuple, some_variable)

def example2(): return ('' in {'f': 2}) in {'has_key() is deprecated': True};

class Example3(object):
    def __init__(self, bar):
        # Comments should have a space after the hash.
        if bar:
            bar += 1
            bar = bar * bar
        else:
            some_string = """
                       Indentation in multiline strings should not be touched.Only actual code should be reindented.
"""

[復制代碼](javascript:void(0)😉

這幾行代碼看上去是不是很亂, 接下來就要使用:Autopep8模塊了

打開cmd找到demo.py的文件的上級目錄,

然后輸入以下命令:

autopep8 --in-place --aggressive --aggressive file.py

file.py 是你的demo.py

輸入命令,按回車執行成功是不返回的, 執行完成之后就可以了,在次打開文件就可以看到變化了。

[復制代碼](javascript:void(0)😉

import math
import sys


def example1():
    some_tuple = (1, 2, 3, 'a')
    some_variable = {
        'long': 'Long code lines should be wrapped within 79 characters.',
        'other': [
            math.pi,
            100,
            200,
            300,
            9876543210,
            'This is a long string that goes on'],
        'more': {
            'inner': 'This whole logical line should be wrapped.',
            some_tuple: [
                1,
                20,
                300,
                40000,
                500000000,
                60000000000000000]}}
    return (some_tuple, some_variable)


def example2(): return ('' in {'f': 2}) in {'has_key() is deprecated': True};


class Example3(object):
    def __init__(self, bar):
        # Comments should have a space after the hash.
        if bar:
            bar += 1
            bar = bar * bar
        else:
            some_string = """
                       Indentation in multiline strings should not be touched.Only actual code should be reindented.
"""

[復制代碼](javascript:void(0)😉

執行完Autopep8之后代碼是不是看上去簡潔多了。

有人會說,沒寫一個函數就執行一遍命令, 是不是有點麻煩啊, 是的, 有有點麻煩, 但是pycharm是可以配置的, 配置過程如下:

1: File ---> Settings ---> Tools ---> External Tools

打開之后,可以看見窗體左上角有一個 + 號, 點擊+號添加。

img

[復制代碼](javascript:void(0)😉

Name: 名稱可以隨意

Program: autopep8        # 前提必須先安裝
Arguments: --in-place --aggressive --aggressive $FilePath$
Working directory: $ProjectFileDir$

Advanced Options
                ---- Outputfilters:
$FILE_PATH$\:$LINE$\:$COLUMN$\:.*

[復制代碼](javascript:void(0)😉

以上配置完成之后點擊 OK 保存即可。

快捷使用:

img

Tools ---> External Tools ---> Autopep8 鼠標點擊一下即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM