Hướng dẫn can you access global variables in python? - bạn có thể truy cập các biến toàn cục trong python không?
Biến toàn cầuCác biến được tạo ra bên ngoài một hàm (như trong tất cả các ví dụ trên) được gọi là các biến toàn cầu. Show
Các biến toàn cầu có thể được sử dụng bởi tất cả mọi người, cả bên trong các chức năng và bên ngoài. Thí dụTạo một biến bên ngoài hàm và sử dụng nó bên trong hàm x = "tuyệt vời" def myfunc (): & nbsp; in ("Python là" + x) myfunc() Hãy tự mình thử » Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu. Thí dụTạo một biến bên ngoài hàm và sử dụng nó bên trong hàm x = "tuyệt vời" def myfunc (): & nbsp; in ("Python là" + x) myfunc() Hãy tự mình thử » Hãy tự mình thử » Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu.Tạo một biến bên trong một hàm, với cùng tên với biến toàn cầu def myfunc (): & nbsp; x = "tuyệt vời" & nbsp; in ("Python là" + x) Thí dụTạo một biến bên ngoài hàm và sử dụng nó bên trong hàm x = "tuyệt vời" myfunc() Hãy tự mình thử » Hãy tự mình thử » Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu. Tạo một biến bên trong một hàm, với cùng tên với biến toàn cầudef myfunc (): & nbsp; x = "tuyệt vời" & nbsp; in ("Python là" + x) x = "tuyệt vời" def myfunc (): & nbsp; in ("Python là" + x) myfunc() Hãy tự mình thử » Hãy tự mình thử »
Chúng ta có thể tạo một toàn cầu với chức năng sau:
Viết một chức năng không thực sự chạy mã của nó. Vì vậy, chúng tôi gọi hàm 6:
Sử dụng Globals mà không cần sửa đổiBạn chỉ có thể sử dụng nó, miễn là bạn không mong đợi thay đổi đối tượng mà nó chỉ vào: Ví dụ,
Và bây giờ chúng ta có thể sử dụng biến toàn cầu:
Sửa đổi biến toàn cầu từ bên trong một hàmĐể trỏ biến toàn cầu ở một đối tượng khác, bạn được yêu cầu sử dụng từ khóa toàn cầu một lần nữa:
Lưu ý rằng sau khi viết chức năng này, mã thực sự thay đổi nó vẫn chưa chạy:
Vì vậy, sau khi gọi chức năng:
Chúng ta có thể thấy rằng biến toàn cầu đã được thay đổi. Tên 7 hiện chỉ vào 8:
Lưu ý rằng "toàn cầu" trong Python không thực sự toàn cầu - nó chỉ là toàn cầu đối với cấp độ mô -đun. Vì vậy, nó chỉ có sẵn cho các chức năng được viết trong các mô -đun mà nó là toàn cầu. Các chức năng ghi nhớ mô -đun mà chúng được viết, vì vậy khi chúng được xuất sang các mô -đun khác, chúng vẫn nhìn vào mô -đun mà chúng được tạo để tìm các biến toàn cầu. Các biến cục bộ có cùng tênNếu bạn tạo một biến cục bộ có cùng tên, nó sẽ làm lu mờ một biến toàn cầu:
Nhưng việc sử dụng biến cục bộ bị tên là không thay đổi biến toàn cầu:
Lưu ý rằng bạn nên tránh sử dụng các biến cục bộ có cùng tên với Globals trừ khi bạn biết chính xác những gì bạn đang làm và có một lý do rất chính đáng để làm như vậy. Tôi chưa gặp phải một lý do như vậy. Chúng tôi có được hành vi tương tự trong các lớp họcTheo dõi bình luận hỏi:
Ở đây tôi chứng minh rằng chúng ta có được hành vi tương tự trong các phương pháp như chúng ta thực hiện trong các chức năng thông thường: 0Và bây giờ: 1Nhưng tôi sẽ đề xuất thay vì sử dụng các biến toàn cầu bạn sử dụng các thuộc tính lớp, để tránh làm lộn xộn không gian tên mô -đun. Cũng lưu ý rằng chúng tôi không sử dụng các đối số 9 ở đây - đây có thể là các phương thức lớp (tiện dụng nếu biến đổi thuộc tính lớp từ đối số 0 thông thường) hoặc phương thức tĩnh (không 9 hoặc 0).
Tại sao chúng ta không nên sử dụng các biến toàn cầu trong Python?Lý do các biến toàn cầu là xấu là vì chúng cho phép các chức năng ẩn (không rõ ràng, đáng ngạc nhiên, khó phát hiện, khó chẩn đoán) tác dụng phụ, dẫn đến sự gia tăng độ phức tạp, có khả năng dẫn đến mã spaghetti.they enable functions to have hidden (non-obvious, surprising, hard to detect, hard to diagnose) side effects, leading to an increase in complexity, potentially leading to Spaghetti code.
Có tốt không khi sử dụng toàn cầu trong Python?Việc sử dụng biến toàn cầu trong Python được coi là thực hành xấu và nói chung nên tránh.Thay vào đó, người dùng có thể thử và sử dụng tham số để truyền giá trị lên hàm hoặc trả về giá trị để có được nó.. Instead the user can try and use a parameter for passing a value onto a function or return a value to obtain it.
Bạn có thể truy cập các biến bên ngoài một chức năng Python không?Trong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cầu được gọi là biến toàn cầu.Điều này có nghĩa là một biến toàn cầu có thể được truy cập bên trong hoặc bên ngoài hàm.a global variable can be accessed inside or outside of the function. |