iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Python

利用Python完成自動化測試專案系列 第 12

D12 PEP 8 規範

  • 分享至 

  • xImage
  •  

今天要介紹的是 PEP 8,這是 Python 社群普遍採用的 coding style,今天重點介紹幾個內容,讓我們的 code 更具一致性與可讀性。

import

  • 每一個模組的 import 應該要獨立成行,不要擠在同一行上。
# Correct:
import os
import sys
# Wrong:
import sys, os
  • 如果是同一來源可在同一行
# Correct:
from subprocess import Popen, PIPE
  • import 應該放在檔案的最開頭,且應按照下列順序分組,每組之間需要空一行:
  1. 標準函式庫
  2. 第三方模組
  3. 本機端

雖然 PEP 8 沒有特別提到,但同一組之間通常會用字母排序,以前一天test.py的開頭舉例。

import json
import os
import time

from dotenv import load_dotenv
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

from pages.article_page import ArticlePage
from pages.ithelp_page import ITHelpPage
from pages.login_page import LoginPage

空格

避免不必要的空格

  • 括號不用加空格
# Correct:
spam(ham[1], {eggs: 2})
# Wrong:
spam( ham[ 1 ], { eggs: 2 } )
  • 逗號也不用
# Correct:
foo = (0,)
# Wrong:
bar = (0, )
  • 冒號與分號左側不用加空格
# Correct:
if x == 4: print(x, y); x, y = y, x
# Wrong:
if x == 4 : print(x , y) ; x , y = y , x
  • 函數的括號也不用
# Correct:
spam(1)
# Wrong:
spam (1)
  • 索引的括號不用
# Correct:
dct['key'] = lst[index]
# Wrong:
dct ['key'] = lst [index]
  • 變數之間加空格,但不用強制對齊
# Correct:
x = 1
y = 2
long_variable = 3
# Wrong:
x             = 1
y             = 2
long_variable = 3

運算符號

  • 二元運算子兩側要加空格(例如=, +=, >, and)
  • 若有不同優先權的運算符號混和(例如乘除優先大於加減),在優先權較低的運算符號兩側加空格。
# Correct:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
# Wrong:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
  • 在函數內的參數若有 default value,記得等於之間不用加空格
# Correct:
def complex(real, imag=0.0):
    return magic(r=real, i=imag)
# Wrong:
def complex(real, imag = 0.0):
    return magic(r = real, i = imag)

命名

通常分為以下幾種

  • bpython (單一小寫字母)
    Bpython (單一大寫字母)
    lowercasepython(小寫字母)
    lower_case_with_underscorespython(帶底線小寫字母)
    UPPERCASEpython(大寫字母)
    UPPER_CASE_WITH_UNDERSCORESpython(帶底線大寫字母)
    CapitalizedWordspython (駝峰式命名)

變數與函數

bpython (單一小寫字母)
lowercasepython(小寫字母)
lower_case_with_underscorespython(帶底線小寫字母)

Class Name

CapitalizedWordspython (駝峰式命名)

Package & Module Name

Package:
lowercasepython(小寫字母)
(不鼓勵帶底線)

Module:
lowercasepython(小寫字母)
lower_case_with_underscorespython(帶底線小寫字母)

常數

UPPERCASEpython(大寫字母)
UPPER_CASE_WITH_UNDERSCORESpython(帶底線大寫字母)

關於 PEP 8 的部分就介紹到這裡,原文件還有介紹很多規範,有興趣的人可以參考: PEP 8 – Style Guide for Python Code(也是今天的參考資料)

明天預計會介紹 Version Coltrol(版本控制),以及使用 Github 的方法


上一篇
D11 Page Object Model
系列文
利用Python完成自動化測試專案12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言