Trích xuất biến từ hàm python

Tái cấu trúc mã nguồn có thể cải thiện chất lượng và khả năng bảo trì dự án của bạn bằng cách tái cấu trúc mã của bạn trong khi không sửa đổi hành vi thời gian chạy. Visual Studio Code hỗ trợ các hoạt động tái cấu trúc (tái cấu trúc) như Phương thức trích xuất và Biến trích xuất để cải thiện cơ sở mã của bạn từ bên trong trình chỉnh sửa của bạn

Trích xuất biến từ hàm python

Ví dụ: một cách tái cấu trúc phổ biến được sử dụng để tránh mã trùng lặp (vấn đề đau đầu khi bảo trì) là cách tái cấu trúc Phương thức trích xuất, trong đó bạn chọn mã nguồn mà bạn muốn sử dụng lại ở nơi khác và kéo nó ra thành phương thức dùng chung của riêng nó

Tái cấu trúc được cung cấp bởi một dịch vụ ngôn ngữ và Mã VS có hỗ trợ tích hợp cho tái cấu trúc TypeScript và JavaScript thông qua dịch vụ ngôn ngữ TypeScript. Hỗ trợ tái cấu trúc cho các ngôn ngữ lập trình khác được cung cấp thông qua các tiện ích mở rộng Mã VS đóng góp các dịch vụ ngôn ngữ. Giao diện người dùng và các lệnh để tái cấu trúc giống nhau giữa các ngôn ngữ và trong chủ đề này, chúng tôi sẽ chứng minh hỗ trợ tái cấu trúc với dịch vụ ngôn ngữ TypeScript

Hành động mã = ​​Sửa nhanh và tái cấu trúc

Trong Mã VS, Tác vụ mã có thể cung cấp cả tái cấu trúc và Bản sửa lỗi nhanh cho các sự cố đã phát hiện (được đánh dấu bằng các nét nguệch ngoạc màu xanh lá cây). Một hành động mã khả dụng được thông báo bởi một bóng đèn gần mã nguồn khi con trỏ nằm trên vùng văn bản được chọn hoặc ngoằn ngoèo. Nhấp vào bóng đèn Hành động mã hoặc sử dụng lệnh Khắc phục nhanh ⌘. (Windows, Linux Ctrl+. ) sẽ hiển thị Bản sửa lỗi nhanh và tái cấu trúc.

Nếu bạn chỉ muốn xem các lần tái cấu trúc mà không có Bản sửa lỗi nhanh, bạn có thể sử dụng lệnh Tái cấu trúc ( ⌃⇧R (Windows, Linux . Ctrl+Shift+R)).

Ghi chú. Nếu bạn không muốn nhìn thấy bóng đèn Code Action trong trình chỉnh sửa của mình, bạn có thể tắt bóng đèn bằng cài đặt editor.lightbulb.enable. Bạn vẫn có thể mở Quick Fixes thông qua lệnh Quick Fix và ⌘. (Windows, Linux Ctrl+. ) phím tắt.

hành động tái cấu trúc

Phương pháp trích xuất

Chọn mã nguồn bạn muốn trích xuất rồi nhấp vào bóng đèn trong rãnh nước hoặc nhấn ( ⌘. (Windows, Linux Ctrl+. ) ) để xem các phép tái cấu trúc có sẵn. Các đoạn mã nguồn có thể được trích xuất thành một phương thức mới hoặc thành một chức năng mới ở nhiều phạm vi khác nhau. Trong quá trình tái cấu trúc giải nén, bạn sẽ được nhắc cung cấp một tên có ý nghĩa.

Trích xuất biến

Dịch vụ ngôn ngữ TypeScript cung cấp tái cấu trúc Extract to const để tạo biến cục bộ mới cho biểu thức hiện được chọn

Trích xuất biến từ hàm python

Khi làm việc với các lớp, bạn cũng có thể trích xuất một giá trị cho một thuộc tính mới

Đổi tên biểu tượng

Đổi tên là một hoạt động phổ biến liên quan đến tái cấu trúc mã nguồn và Mã VS có lệnh Đổi tên Biểu tượng riêng ( F2 ). Một số ngôn ngữ hỗ trợ đổi tên biểu tượng trên các tệp. Nhấn F2 , sau đó nhập tên mong muốn mới và nhấn Enter . Tất cả các tập quán của biểu tượng sẽ được đổi tên, trên các tệp.

Trích xuất biến từ hàm python

Tổ hợp phím cho các hành động mã

Lệnh editor.action.codeAction cho phép bạn định cấu hình các liên kết phím cho các Tác vụ mã cụ thể. Ví dụ, thao tác liên kết phím này sẽ kích hoạt Tác vụ mã tái cấu trúc chức năng Trích xuất

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function"
  }
}

Các loại Hành động mã được chỉ định bởi các tiện ích mở rộng sử dụng API CodeActionProvided nâng cao. Các loại được phân cấp, vì vậy, "kind": "refactor" sẽ hiển thị tất cả các Hành động mã tái cấu trúc, trong khi đó, "kind": "refactor.extract.function" sẽ chỉ hiển thị các hoạt động tái cấu trúc chức năng Trích xuất

Sử dụng liên kết phím ở trên, nếu chỉ có một Hành động mã "refactor.extract.function" duy nhất, hành động đó sẽ tự động được áp dụng. Nếu có nhiều Hành động mã chức năng trích xuất, chúng tôi sẽ hiển thị menu ngữ cảnh để chọn chúng

Trích xuất biến từ hàm python

Bạn cũng có thể kiểm soát cách thức/thời điểm các Tác vụ mã được áp dụng tự động bằng cách sử dụng đối số apply

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}

Các giá trị hợp lệ cho

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}
0

  • {
      "key": "ctrl+shift+r ctrl+e",
      "command": "editor.action.codeAction",
      "args": {
        "kind": "refactor.extract.function",
        "apply": "first"
      }
    }
    
    1 - Luôn tự động áp dụng Hành động Mã có sẵn đầu tiên
  • {
      "key": "ctrl+shift+r ctrl+e",
      "command": "editor.action.codeAction",
      "args": {
        "kind": "refactor.extract.function",
        "apply": "first"
      }
    }
    
    2 - Mặc định. Tự động áp dụng Hành động mã nếu chỉ có sẵn một hành động. Nếu không, hãy hiển thị menu ngữ cảnh
  • {
      "key": "ctrl+shift+r ctrl+e",
      "command": "editor.action.codeAction",
      "args": {
        "kind": "refactor.extract.function",
        "apply": "first"
      }
    }
    
    3 - Luôn hiển thị menu ngữ cảnh Hành động mã, ngay cả khi chỉ có sẵn một Hành động mã

Khi liên kết phím Hành động mã được định cấu hình với

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}
4, chỉ các Bản sửa lỗi nhanh và tái cấu trúc được ưu tiên mới được hiển thị. Một Quick Fix được ưu tiên giải quyết lỗi cơ bản, trong khi tái cấu trúc ưu tiên là lựa chọn tái cấu trúc phổ biến nhất. Ví dụ: trong khi có thể tồn tại nhiều lần tái cấu trúc
{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}
5, mỗi lần trích xuất sang một phạm vi khác nhau trong tệp, thì lần tái cấu trúc
{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}
5 được ưu tiên là lần trích xuất thành một biến cục bộ

Liên kết phím này sử dụng

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function",
    "apply": "first"
  }
}
4 để tạo một phép tái cấu trúc luôn cố trích xuất mã nguồn đã chọn thành một hằng số trong phạm vi cục bộ

{
  "key": "shift+ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.constant",
    "preferred": true,
    "apply": "ifsingle"
  }
}

Tiện ích mở rộng với tái cấu trúc

Bạn có thể tìm các tiện ích mở rộng hỗ trợ tái cấu trúc bằng cách tìm trong VS Code Marketplace. Bạn có thể chuyển đến chế độ xem Tiện ích mở rộng ( ⇧⌘X (Windows, Linux Ctrl+Shift+X)) and type 'refactor' in the search box. You can then sort by install count or ratings to see which extensions are popular.

Mẹo. Các tiện ích mở rộng được hiển thị ở trên được truy vấn động. Nhấp vào ô tiện ích mở rộng ở trên để đọc mô tả và đánh giá để quyết định tiện ích mở rộng nào phù hợp nhất với bạn

Bước tiếp theo

  • Video giới thiệu - Chỉnh sửa mã - Xem video giới thiệu về các tính năng chỉnh sửa mã
  • Điều hướng mã - Mã VS cho phép bạn di chuyển nhanh qua mã nguồn của mình
  • Gỡ lỗi - Tìm hiểu về gỡ lỗi với Mã VS

Câu hỏi thường gặp

Tại sao tôi không thấy bất kỳ bóng đèn nào khi có lỗi trong mã của mình?

Bóng đèn (Hành động mã) chỉ được hiển thị khi con trỏ của bạn di chuột qua văn bản hiển thị lỗi. Di chuột qua văn bản sẽ hiển thị mô tả lỗi, nhưng bạn cần di chuyển con trỏ hoặc chọn văn bản để xem bóng đèn cho các bản sửa lỗi nhanh và tái cấu trúc

Bạn có thể gọi một biến từ một hàm không?

Bạn có thể truy cập các biến như vậy bên trong và bên ngoài một hàm, vì chúng có phạm vi toàn cục . Biến x trong đoạn mã trên được khai báo bên ngoài một hàm. x = 10. Sử dụng hàm showX(), chúng tôi vẫn có thể truy cập x vì nó được khai báo trong phạm vi toàn cầu.

Làm cách nào để truy cập biến từ một hàm khác trong cùng một lớp trong Python?

Các biến được định nghĩa bên trong lớp nhưng bên ngoài phương thức có thể được truy cập trong lớp (bao gồm tất cả các phương thức) bằng cách sử dụng thể hiện của một lớp. Ví dụ – bản thân. var_name. Nếu bạn muốn sử dụng biến đó ngay cả bên ngoài lớp, bạn phải khai báo biến đó là biến toàn cục.