Báo cáo biến không xác định Python

Squish IDE có một số hỗ trợ để phân tích mã (hiển thị lỗi cú pháp, biến không sử dụng, v.v. ) và hoàn thành mã

Bài viết này mô tả các bước cần thiết để phân tích mã và hoàn thành mã hoạt động trong Squish IDE cho mã Python của riêng bạn để loại bỏ các cảnh báo trong trình chỉnh sửa tập lệnh Python (chẳng hạn như "Undefined variable: ...")

Cách tiếp cận #1 - Thêm các thư mục mô-đun Python tùy chỉnh vào dự án Python

Khi câu lệnh nhập của Python, các thư mục chứa tập lệnh được chia sẻ phải được định cấu hình ở một trong các vị trí sau

  • Chế độ xem Global Scripts trong Squish IDE

  • Cài đặt thư viện trình thông dịch Python của PyDev (tại Edit > Preferences > PyDev > Interpreter - Python > Libraries) điều này sẽ không giúp Squish tìm thấy bất cứ thứ gì và chỉ dành cho IDE PyDev

  • Cài đặt bộ kiểm tra cụ thể của PyDev cho các thư viện bên ngoài (ở chế độ xem PyDev Package Explorer (để mở chế độ xem này, hãy truy cập

    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    0 >
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    1 >
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    2), nhấp chuột phải vào
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    3, chọn
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    4, chọn
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    5, chọn tab
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    6)

Bước 1. Đang hiển thị lỗi nhập

Bước 2. Mở chế độ xem PyDev Package Explorer (Cửa sổ > Chế độ xem hiển thị > Khác. > PyDev > Trình khám phá gói PyDev)

Bước 3. Thêm vào bộ thử nghiệm của

if False: from qt_symbols import *

def main():
    fm = QFontMetrics()
8

Bước 4. Thêm thư viện bên ngoài và nhấp vào

if False: from qt_symbols import *

def main():
    fm = QFontMetrics()
9

Bước 5. Lỗi nhập vẫn hiển thị

Bước 6. Đóng trình chỉnh sửa và mở lại tệp - lỗi nhập không hiển thị nữa

Cách tiếp cận #2 - Thêm các thư mục mô-đun Python tùy chỉnh vào Global Scripts

Bước 1. Mở và chọn chế độ xem Global Scripts (Window > Show View. > Kiểm tra Squish > Tập lệnh Toàn cầu)

Bước 2. Thêm các thư mục có mô-đun Python tùy chỉnh vào thư mục Global Script

Các biểu tượng "hiển thị" trong ngôn ngữ kịch bản rất năng động. Nhiều trong số chúng chỉ được hiển thị khi AUT được kết nối bởi Squish. Điều này là do Squish có thể hoạt động với vô số bộ công cụ GUI và đối với mỗi bộ công cụ GUI khác nhau, các biểu tượng khác nhau sẽ được hiển thị

Ví dụ: có một hàm

if False: QFontMetrics = None

def main():
    fm = QFontMetrics()
0 khi bạn có một ứng dụng Web, nhưng khi bạn chuyển sang ngữ cảnh ứng dụng của một ứng dụng Qt trong cùng một tập lệnh kiểm tra, thì hàm
if False: QFontMetrics = None

def main():
    fm = QFontMetrics()
0 sẽ không còn hiển thị trong tập lệnh kiểm tra nữa, cho đến khi bạn chuyển trở lại

Tuy nhiên, trình chỉnh sửa tập lệnh trong Squish IDE không thể phân biệt loại ứng dụng nào sẽ là "hiện tại", do đó họ không thể đơn giản đánh dấu

if False: QFontMetrics = None

def main():
    fm = QFontMetrics()
0 là một chức năng luôn khả dụng, bởi vì nó không khả dụng mọi lúc. Thay vào đó, mã tập lệnh của bạn xác định khi nào chức năng đó khả dụng, bằng cách chuyển ngữ cảnh ứng dụng

Để tránh "

if False: QFontMetrics = None

def main():
    fm = QFontMetrics()
3" đối với các biểu tượng được cung cấp bởi trình bao bọc bộ công cụ Squish, có thể sử dụng các phương pháp sau

Cách tiếp cận số 1 - Khai báo các ký hiệu trong tệp bên ngoài

Bước # 1 - Tạo tệp bên ngoài với các ký hiệu mong muốn

Đối với điều này, chúng tôi sẽ tạo một tài nguyên bộ thử nghiệm được chia sẻ, nhưng cũng có thể sử dụng Global Script hoặc một tệp ở một đường dẫn tùy ý

if False:
    QFontMetrics = None
    QWidget = None

Tài nguyên bộ thử nghiệm được chia sẻ "qt_symbols. py"

Bước #2 - Cung cấp các định nghĩa biểu tượng cho PyDev

  • Chọn

    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    0 >
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    1 >
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    2 > PyDev > PyDev Package Explorer

  • Nhấp chuột phải vào dự án, chọn

    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    4, chọn
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    5, chọn tab Undefined variable: ...1. (Đối với các đường dẫn bên ngoài bộ thử nghiệm, hãy chọn
    if False: from qt_symbols import *
    
    def main():
        fm = QFontMetrics()
    6 thay vì. )

  • Nhấp vào nút Undefined variable: ...3 và mở rộng mục nhập bộ thử nghiệm và chọn Undefined variable: ...4 (hoặc đường dẫn đến tệp bên ngoài)

Bước #3 - Nhập tất cả các ký hiệu từ tệp

if False: from qt_symbols import *

def main():
    fm = QFontMetrics()

Bài kiểm tra. py

Cách tiếp cận #2 - Khai báo các ký hiệu trong cùng một tập lệnh kiểm tra

if False: QFontMetrics = None

def main():
    fm = QFontMetrics()

Bài kiểm tra. py

Vô hiệu hóa phân tích mã của PyDev

Phân tích mã Python có thể được định cấu hình tại Edit > Preferences > PyDev > Undefined variable: ...8 > Undefined variable: ...9

  • Việc hoàn thành mã Python có thể được định cấu hình tại Edit > Preferences > PyDev > Undefined variable: ...8 > Edit4 và Edit5

  • Các tổ hợp phím cho Hỗ trợ nội dung của Eclipse và các chức năng khác có thể được cấu hình tại Edit > Preferences > Edit8 > Edit9

    Biến không xác định trong Python là gì?

    Biến không xác định trong mã nguồn của chương trình máy tính là biến được truy cập trong mã nhưng chưa được mã đó khai báo. In some programming languages, an implicit declaration is provided the first time such a variable is encountered at compile time.

    Điều gì làm cho một biến không xác định?

    Biến chưa được gán giá trị thuộc loại không xác định. Một phương thức hoặc câu lệnh cũng trả về không xác định nếu biến đang được đánh giá không có giá trị được gán. Hàm trả về không xác định nếu giá trị không được trả về.

    Giá trị của một biến không xác định là gì?

    Một biến không được xác định khi không có giá trị nào được gán cho nó .

    Tại sao biến Python không được xác định?

    Một số lỗi phổ biến gây ra lỗi này là. Sử dụng tên biến hoặc hàm chưa được xác định . Viết sai tên biến/hàm khi gọi biến/hàm. Sử dụng mô-đun Python mà không cần nhập mô-đun, v.v.