Hướng dẫn python global variable is undefined at the module level - Biến toàn cục python không được xác định ở cấp mô-đun
. Show Tôi nghĩ rằng tôi thực sự hiểu biết về việc Python làm như thế nào do nền C#/C ++ của tôi. Vì vậy, đây là những gì tôi đang cố gắng làm ngay lúc này. Tôi bắt đầu với hai mô-đun để thiết lập phần còn lại của dự án của mình, một phần dưới dạng kiểm tra tỉnh táo và chứng minh khái niệm. Một mô -đun ghi lại mọi thứ vào một tệp khi tôi đi trong khi cũng lưu trữ dữ liệu từ nhiều mô -đun (để cuối cùng đóng gói tất cả và bỏ chúng theo yêu cầu) thực hiện tất cả những điều này trong Pycharm và đề cập đến các cảnh báo lỗi mà nó gợi ý bằng cách này và sử dụng Python 2.7
(Cả hai mô -đun và SRC gốc \ đều có tệp init.py trống trong chúng)init.py file in them) Vì vậy, theo phản hồi hoàn toàn tuyệt vời ở đây (Python - khả năng hiển thị của các biến toàn cầu trong các mô -đun nhập khẩu) ở giai đoạn này, điều này sẽ hoạt động, nhưng 'Mylogger' trở thành 'tham chiếu chưa được giải quyết' ' Vì vậy, đó là một cách tiếp cận. Tôi cũng đã thử một cái toàn cầu thẳng hơn (Python: Cách tạo biến mô-đun chéo?)
Phiên bản này nhận được lỗi "không được thông báo" "trong tập thể, mà các báo cáo khác nhau dường như chỉ ra có nghĩa là Mylogger không được khởi tạo (mã lỗi sai nhưng đó có vẻ là ý nghĩa của nó) Và sau đó tôi đã thử cái này ..
Và phiên bản này nhận được 'biến toàn cầu không được xác định ở mức độ mô -đun' khi tôi di chuột của Mylogger toàn cầu. Sau đó, có ý tưởng về mô -đun khác theo dõi ví dụ của chính nó về một lớp, nếu cuối cùng tôi phải thực hiện phương pháp đó và điều phối chúng .. nhưng đó là một vụ hack khi xem xét những gì tôi đang cố gắng làm. Đó là loại nơi tôi đang ở, đó là ý chính của những gì tôi đang cố gắng làm ... Tôi đang đọc qua nhiều câu hỏi tương tự như tôi có thể nhưng tất cả chúng dường như trở lại với những giải pháp này (mà Dường như không hoạt động) hoặc nói 'Đừng làm điều đó' (nói chung là lời khuyên tốt nhưng tôi không thực sự theo cách của Pythony ưa thích đẩy tất cả chúng vào một thư mục) Suy nghĩ? . .
Đặt nó qua init.pyinit.py
Đã đi đến mô -đun khác và
Chạy nó trực tiếp thay vì nhìn vào Pycharm, không có gì toàn cầu .. Vì vậy, vẫn ở hình vuông một :( (và vẫn cần lưu trữ trạng thái) [Chỉnh sửa] Thêm Traceback:
================================================== =========================== KK, tôi đã làm cho nó làm việc với miniclass. Tôi không biết tại sao phương pháp / cách tiếp cận khác không hoạt động, nhưng điều này dường như sửa chữa mọi thứ. .
Vì một số lý do, bỏ qua init.py (và để trống) và đi cho nhập khẩu rõ ràng hoạt động. Nó cũng duy trì trạng thái - Tôi đã tạo một bản sao của tệp kiểm tra và đầu ra nhật ký của tôi có '3' để tệp đầu tiên gọi trình trợ giúp và '4' để tệp thứ hai gọi người trợ giúp.init.py (and leaving it blank) and going for the explicit importation worked. It also maintained state - I created a duplicate of the test file and my log output correctly had '3' for the first file to call the helper, and '4' for the second file to call the helper. Cảm ơn Daniel Roseman vì sự giúp đỡ và đề xuất, họ đã cho tôi nhìn thêm một chút theo đúng hướng. Nếu bạn có thể nhận ra lý do tại sao những thứ trước đó không hoạt động, nó sẽ được đánh giá cao chỉ để thêm vào sự hiểu biết của tôi về ngôn ngữ này, nhưng tôi sẽ tiếp tục và đánh dấu câu trả lời của bạn là 'trả lời' vì nó có một số phản hồi rất hữu ích. Tại sao biến toàn cầu của tôi không được xác định?Lý do cảnh báo đầu tiên không được xác định là vì bạn đã khai báo lại toàn cầu như một biến cục bộ bên dưới nó trong hàm. Và trong JavaScript có nghĩa là từ đầu hàm, nó được coi là biến cục bộ. Một bên dưới nó hoạt động bởi vì ngay trên cảnh báo bạn đã cho nó một giá trị.you re-declared global as a local variable below it in the function. And in javascript that means from the top of the function it is considered the local variable. The one below it works because just above the alert you gave it a value.
Làm thế nào để bạn tuyên bố một biến toàn cầu trong Python?Thông thường, khi bạn tạo một biến bên trong một hàm, biến đó là cục bộ và chỉ có thể được sử dụng bên trong hàm đó.Để tạo một biến toàn cầu bên trong một hàm, bạn có thể sử dụng từ khóa toàn cầu.use the global keyword.
Một biến không xác định trong Python là gì?Một biến không xác định trong mã nguồn của chương trình máy tính là một biến được truy cập trong mã nhưng chưa được mã đó khai báo.Trong một số ngôn ngữ lập trình, một tuyên bố ngầm được cung cấp lần đầu tiên một biến như vậy gặp phải tại thời điểm biên dịch.a variable that is accessed in the code but has not been declared by that code. In some programming languages, an implicit declaration is provided the first time such a variable is encountered at compile time.
Bạn có cần phải tuyên bố biến toàn cầu trong Python không?Để tạo một biến toàn cầu trong Python, bạn cần khai báo biến bên ngoài hàm hoặc trong phạm vi toàn cầu.you need to declare the variable outside the function or in a global scope. |