Biến cục bộ Python cùng tên với biến toàn cầu
Khi một tham số có cùng tên với một biến được xác định bên ngoài, thay vì hàm sử dụng biến được xác định bên ngoài, nó sẽ chỉ tham chiếu đến giá trị được truyền cho tham số. Vì vậy, các tham số sẽ được sử dụng trên các biến cùng tên trong một hàm Show Các biến được tạo bên ngoài hàm (như trong tất cả các ví dụ ở trên) được gọi là biến toàn cục Mọi người đều có thể sử dụng biến toàn cục, cả bên trong và bên ngoài hàm Thí dụTạo một biến bên ngoài một hàm và sử dụng nó bên trong hàm x = "tuyệt vời" def myfunc() myfunc() 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ục có cùng tên sẽ vẫn như cũ, toàn cầu và với giá trị ban đầu Thí dụTạo một biến bên trong một hàm, có cùng tên với biến toàn cục x = "tuyệt vời" def myfunc() myfunc() print("Trăn là " + x) Tự mình thử »Từ khóa toàn cầuThô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ục bên trong một hàm, bạn có thể sử dụng từ khóa Thí dụNếu bạn sử dụng từ khóa def myfunc() myfunc() print("Trăn là " + x) Tự mình thử »Ngoài ra, hãy sử dụng từ khóa Thí dụĐể thay đổi giá trị của một biến toàn cục bên trong một hàm, hãy tham chiếu đến biến đó bằng cách sử dụng từ khóa Nói chung, một biến được xác định trong một khối chỉ khả dụng trong khối đó. Nó không thể truy cập bên ngoài khối. Biến như vậy được gọi là biến cục bộ. Định danh đối số chính thức cũng hoạt động như các biến cục bộ Ví dụ sau đây sẽ nhấn mạnh điểm này. Nỗ lực in một biến cục bộ bên ngoài phạm vi của nó sẽ làm tăng ngoại lệ 0Thí dụ. Biến cục bộ Sao chép
Ở đây, 1 là một biến cục bộ cho hàm 2 và không thể truy cập được bên ngoài nóThí dụ. Biến cục bộ Sao chép
Bất kỳ biến nào có mặt bên ngoài bất kỳ khối chức năng nào được gọi là biến toàn cục. Giá trị của nó có thể truy cập từ bên trong bất kỳ chức năng nào. Trong ví dụ sau, biến 1 được khởi tạo trước khi định nghĩa hàm. Do đó, nó là một biến toàn cầuThí dụ. Biến toàn cầu Sao chép
Bây giờ, bạn có thể truy cập biến toàn cục 1 vì nó đã được định nghĩa ngoài hàm________số 8_______ Tuy nhiên, nếu chúng ta gán một giá trị khác cho một biến được khai báo toàn cầu bên trong hàm, thì một biến cục bộ mới sẽ được tạo trong không gian tên của hàm. Phép gán này sẽ không làm thay đổi giá trị của biến toàn cục. Ví dụ Thí dụ. Biến cục bộ và biến toàn cục Sao chép
Bây giờ, việc thay đổi giá trị của biến toàn cục 1 bên trong một hàm sẽ không ảnh hưởng đến giá trị toàn cục của nó
Nếu bạn cần truy cập và thay đổi giá trị của biến toàn cục từ bên trong một hàm, quyền này được cấp bởi từ khóa 6Thí dụ. Truy cập các biến toàn cầu Sao chép
Ở trên sẽ hiển thị đầu ra sau trong trình bao Python
Cũng có thể sử dụng đồng thời biến toàn cục và biến cục bộ có cùng tên. Hàm tích hợp 7 trả về một đối tượng từ điển của tất cả các biến toàn cục và các giá trị tương ứng của chúng. Sử dụng tên của biến làm khóa, giá trị của nó có thể được truy cập và sửa đổiThí dụ. Biến toàn cầu Sao chép
Kết quả của đoạn mã trên cho thấy xung đột giữa các biến toàn cục và biến cục bộ có cùng tên và cách giải quyết Biến toàn cục và cục bộ có thể có cùng tên trong Python không?Việc đặt tên giống nhau cho các biến khác nhau thường không phải là một cách lập trình tốt. Nếu biến toàn cục và biến cục bộ có cùng tên nằm trong phạm vi, nghĩa là có thể truy cập được, thì mã của bạn chỉ có thể truy cập biến cục bộ .
Biến toàn cục và cục bộ có thể có cùng tên không?Một chương trình có thể có cùng tên cho biến cục bộ và biến toàn cầu nhưng giá trị của biến cục bộ bên trong hàm sẽ được ưu tiên.
Một biến có thể là cục bộ và toàn cục trong Python không?Có nhiều ưu điểm và nhược điểm khi sử dụng cả biến cục bộ và biến toàn cục . Sẽ là khôn ngoan khi tránh khai báo các biến toàn cục vô nghĩa và sử dụng các biến cục bộ để truyền và thao tác dữ liệu. Nói chung, đó là một cách thực hành tốt để sử dụng các biến cục bộ trong Python.
Khi biến cục bộ trùng tên với biến toàn cục Biến cục bộ che khuất biến toàn cục?Vô hiệu biến xảy ra khi một biến được xác định trong phạm vi bên trong có cùng tên với một biến trong phạm vi bên ngoài . Xét ví dụ bên dưới, ở đây biến bên trong hàm trùng tên với biến toàn cục. |