iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

30天深入了解Pycharm系列 第 8

Day 08. Find, Replace and Refactor

  • 分享至 

  • xImage
  •  

更多相關連結: https://linktr.ee/wade3c


Find

透過ctrl + F可以在開啟的檔案中進行搜尋,如果想要對整個專案進行搜尋就得使用ctrl+shift+F,有時候要搜尋的關鍵字可能過於被頻繁使用,我們可以透過以下幾種限制來減少搜尋結果的數量

Match Case

可以限制找到的內容需要符合對應的大小寫

Image.png

Words

只顯示完整符合關鍵字的結果(如果有多餘贅詞等就不match)

Image.png

以上圖範例而言,如果沒有開words的選項,第9行的print_hi也會被搜尋到

Regex

可以透過正規表達式的語法去搜尋

Image.png

Replace

在使用ctrl+f後按下ctrl+r,就會在原本的搜尋欄下方多出一欄

Image.png

Refactor

一個比較大或是需要長期開發的專案很容易會遇到需要refactor的情境,Pycharm透過自動檢查可以避免在refactor時出現忘記修改的情況

Rename File/ Folder

如果你曾經在pycharm中嘗試去重新命名檔案的話會發現他被藏在refactor下,這是為了避免我們異動檔案或是資料夾名稱時,沒有去修正有用到這些檔案或是資料夾的code,Pycharm會檢查整個project內的code通知我們哪些code應該也要被一起修正

image.png

Change Signature

其實不只是在修改檔案名稱時可以做檢查,在重新命名function或是class時也可以一併修正用到的地方

Image.png

Convert to Python Package/ Module

Pycharm也提供一鍵把檔案變成python packages或是module的服務

Image.png

Extract Method

有時候我們會不希望一個function變得太肥大,這樣不僅會不易他人閱讀也會導致難以維護,透過extract method我們可以自動把function內的部分邏輯給抽出來

Before

from enum import Enum


class Category(Enum):
    A = 1
    B = 2
    C = 3


def calculate_tax(category, income):
    if category == Category.A:
        discount = 10
    elif category == Category.B:
        discount = 5
    else:
        discount = 0
    return income * (100 - discount) / 100

After

from enum import Enum


class Category(Enum):
    A = 1
    B = 2
    C = 3


def calculate_tax(category, income):
    discount = cacl_discount(category)
    return income * (100 - discount) / 100


def cacl_discount(category):
    if category == Category.A:
        discount = 10
    elif category == Category.B:
        discount = 5
    else:
        discount = 0
    return discount

Reference

Search for a target within a file | PyCharm

Refactor code | PyCharm


上一篇
Day 07. 常用快捷鍵
下一篇
Day 09. Coding Utilities
系列文
30天深入了解Pycharm31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言