Giá trị ban đầu của biến toàn cục python
Trong bài viết này, chúng tôi sẽ đề cập đến từ khóa toàn cầu, các quy tắc cơ bản cho từ khóa toàn cầu trong Python, sự khác biệt giữa biến cục bộ và biến toàn cầu và các ví dụ về từ khóa toàn cầu trong Python Show
Mục đích của các từ khóa toàn cầu trong python là gì?Từ khóa toàn cầu là từ khóa cho phép người dùng sửa đổi một biến bên ngoài phạm vi hiện tại. Nó được sử dụng để tạo các biến toàn cục trong Python từ phạm vi không toàn cầu, tôi. e. bên trong một chức năng. Từ khóa toàn cục chỉ được sử dụng bên trong một hàm khi chúng ta muốn thực hiện các nhiệm vụ hoặc khi chúng ta muốn thay đổi một biến. Toàn cầu không cần thiết để in và truy cập Quy tắc của từ khóa toàn cầu
Sử dụng từ khóa toàn cầu trong Python. Để truy cập một biến toàn cục bên trong một hàm, không cần sử dụng từ khóa toàn cầu. Từ khóa toàn cầu trong ví dụ về pythonví dụ 1. Truy cập biến toàn cục từ bên trong một hàmPython3
UnboundLocalError: local variable 'a' referenced before assignment0 UnboundLocalError: local variable 'a' referenced before assignment1 = UnboundLocalError: local variable 'a' referenced before assignment3
UnboundLocalError: local variable 'a' referenced before assignment4 UnboundLocalError: local variable 'a' referenced before assignment5 UnboundLocalError: local variable 'a' referenced before assignment6 UnboundLocalError: local variable 'a' referenced before assignment7 UnboundLocalError: local variable 'a' referenced before assignment8 = a Value of x inside a function : 20 Value of x outside a function : 201 UnboundLocalError: local variable 'a' referenced before assignment1 UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 Value of x inside a function : 20 Value of x outside a function : 205
Value of x inside a function : 20 Value of x outside a function : 206 Value of x inside a function : 20 Value of x outside a function : 207 đầu ra 25 Nếu chúng ta cần gán một giá trị mới cho một biến toàn cục, thì chúng ta có thể làm điều đó bằng cách khai báo biến đó là toàn cục ví dụ 2. Sửa đổi biến toàn cục từ bên trong hàmPython3
UnboundLocalError: local variable 'a' referenced before assignment0
'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]1 UnboundLocalError: local variable 'a' referenced before assignment5 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]3 UnboundLocalError: local variable 'a' referenced before assignment7 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]5 UnboundLocalError: local variable 'a' referenced before assignment7 UnboundLocalError: local variable 'a' referenced before assignment1 = a Value of x inside a function : 20 Value of x outside a function : 201 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]1 UnboundLocalError: local variable 'a' referenced before assignment7 a = UnboundLocalError: local variable 'a' referenced before assignment1 UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]8
'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]9 đầu ra UnboundLocalError: local variable 'a' referenced before assignment Đầu ra này là một lỗi vì chúng tôi đang cố gắng gán giá trị cho một biến trong phạm vi bên ngoài. Điều này có thể được thực hiện với việc sử dụng một biến toàn cục ví dụ 3. Thay đổi biến toàn cầu từ bên trong một hàm bằng cách sử dụng toàn cầuPython31 2 geeksforgeeks0_______137_______ UnboundLocalError: local variable 'a' referenced before assignment0
UnboundLocalError: local variable 'a' referenced before assignment5 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]3 UnboundLocalError: local variable 'a' referenced before assignment7 1 2 geeksforgeeks6 UnboundLocalError: local variable 'a' referenced before assignment7 1 2 geeksforgeeks8 1 2 geeksforgeeks0
UnboundLocalError: local variable 'a' referenced before assignment7 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]5 UnboundLocalError: local variable 'a' referenced before assignment7 1 2 geeksforgeeks0 = 1 2 geeksforgeeks0 Value of x inside a function : 20 Value of x outside a function : 201 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]1 UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0# global variable 1# global variable 2
'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]9 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0# global variable 6# global variable 2đầu ra ________số 8_______Trong ví dụ trên, trước tiên chúng ta định nghĩa x là một từ khóa toàn cục bên trong hàm change(). Giá trị của x sau đó được tăng thêm 5, i. e. x=x+5 và do đó chúng tôi nhận được đầu ra là 20. Như chúng ta có thể thấy bằng cách thay đổi giá trị bên trong hàm change(), sự thay đổi cũng được phản ánh trong giá trị bên ngoài biến toàn cục Sửa đổi các đối tượng có thể thay đổi toàn cầuví dụ 1. Sửa đổi các thành phần danh sách mà không sử dụng từ khóa toàn cầuTại đây, chúng ta có thể sửa đổi các thành phần danh sách được xác định trong phạm vi toàn cầu mà không cần sử dụng từ khóa toàn cầu. Bởi vì chúng tôi không sửa đổi đối tượng được liên kết với biến arr, nhưng chúng tôi đang sửa đổi các mục trong danh sách chứa. Vì danh sách là cấu trúc dữ liệu có thể thay đổi, do đó chúng tôi có thể sửa đổi nội dung của nó Python3
UnboundLocalError: local variable 'a' referenced before assignment3 a 2a 3a 2a 5a 6
UnboundLocalError: local variable 'a' referenced before assignment5 a 8UnboundLocalError: local variable 'a' referenced before assignment7 = 0 = 1= 2 = 3# global variable 0= 5= 6
Value of x inside a function : 20 Value of x outside a function : 201 = UnboundLocalError: local variable 'a' referenced before assignment3
Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0_______0_______04UnboundLocalError: local variable 'a' referenced before assignment05 UnboundLocalError: local variable 'a' referenced before assignment06 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0UnboundLocalError: local variable 'a' referenced before assignment09 UnboundLocalError: local variable 'a' referenced before assignment05 đầu ra 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40] ví dụ 2. Sửa đổi biến danh sách bằng từ khóa toàn cầuỞ đây chúng tôi đang cố gán một danh sách mới cho biến toàn cục. Vì vậy, chúng ta cần sử dụng từ khóa toàn cầu khi một đối tượng mới được tạo. Ở đây nếu chúng ta không sử dụng từ khóa global thì một biến cục bộ mới arr sẽ được tạo với các phần tử danh sách mới. Nhưng biến toàn cục arr sẽ không thay đổi. Python3
UnboundLocalError: local variable 'a' referenced before assignment3 a 2a 3a 2a 5a 6
UnboundLocalError: local variable 'a' referenced before assignment5 a 8UnboundLocalError: local variable 'a' referenced before assignment7 1 2 geeksforgeeks8 # global variable 8UnboundLocalError: local variable 'a' referenced before assignment7 # global variable 8= a 0a 3a 2a 5a 2UnboundLocalError: local variable 'a' referenced before assignment33 a 6
Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0_______0_______04UnboundLocalError: local variable 'a' referenced before assignment05 UnboundLocalError: local variable 'a' referenced before assignment06 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0UnboundLocalError: local variable 'a' referenced before assignment09 UnboundLocalError: local variable 'a' referenced before assignment05 đầu ra 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40] Biến toàn cầu trên các mô-đun PythonCách tốt nhất để chia sẻ các biến toàn cục giữa các mô-đun khác nhau trong cùng một chương trình là tạo một mô-đun đặc biệt (thường được đặt tên là config hoặc cfg). Nhập mô-đun cấu hình vào tất cả các mô-đun của ứng dụng của bạn; . Chỉ có một phiên bản của mỗi mô-đun và do đó, bất kỳ thay đổi nào được thực hiện đối với đối tượng mô-đun đều được phản ánh ở mọi nơi. Ví dụ: chia sẻ các biến toàn cục giữa các mô-đun mã 1. Tạo cấu hình. tệp py để lưu trữ các biến toàn cụcPython31 2 geeksforgeeks0____137_______ UnboundLocalError: local variable 'a' referenced before assignment46 UnboundLocalError: local variable 'a' referenced before assignment47_______137_______ UnboundLocalError: local variable 'a' referenced before assignment46 UnboundLocalError: local variable 'a' referenced before assignment50 = UnboundLocalError: local variable 'a' referenced before assignment52 mã 2. Tạo một sửa đổi. py để sửa đổi các biến toàn cụcPython3UnboundLocalError: local variable 'a' referenced before assignment53 UnboundLocalError: local variable 'a' referenced before assignment54 UnboundLocalError: local variable 'a' referenced before assignment55 = UnboundLocalError: local variable 'a' referenced before assignment57 UnboundLocalError: local variable 'a' referenced before assignment58 = UnboundLocalError: local variable 'a' referenced before assignment60 UnboundLocalError: local variable 'a' referenced before assignment61 = UnboundLocalError: local variable 'a' referenced before assignment63 Ở đây chúng tôi đã sửa đổi giá trị của x, y và z. Các biến này đã được xác định trong cấu hình mô-đun. py, do đó chúng tôi phải nhập mô-đun cấu hình và có thể sử dụng cấu hình. tên_biến để truy cập các biến này Tạo một chính. py để sửa đổi các biến toàn cụcPython3UnboundLocalError: local variable 'a' referenced before assignment53 UnboundLocalError: local variable 'a' referenced before assignment54 UnboundLocalError: local variable 'a' referenced before assignment53 UnboundLocalError: local variable 'a' referenced before assignment67 Value of x inside a function : 20 Value of x outside a function : 204 UnboundLocalError: local variable 'a' referenced before assignment69 Value of x inside a function : 20 Value of x outside a function : 204 UnboundLocalError: local variable 'a' referenced before assignment71 Value of x inside a function : 20 Value of x outside a function : 204 UnboundLocalError: local variable 'a' referenced before assignment73 đầu ra 1 2 geeksforgeeks Toàn cầu trong các hàm lồng nhauĐể sử dụng toàn cầu bên trong một hàm lồng nhau, chúng ta phải khai báo một biến có từ khóa toàn cầu bên trong một hàm lồng nhau Python3UnboundLocalError: local variable 'a' referenced before assignment74 UnboundLocalError: local variable 'a' referenced before assignment75
UnboundLocalError: local variable 'a' referenced before assignment5 UnboundLocalError: local variable 'a' referenced before assignment6 UnboundLocalError: local variable 'a' referenced before assignment7 1 2 geeksforgeeks0 = UnboundLocalError: local variable 'a' referenced before assignment0 UnboundLocalError: local variable 'a' referenced before assignment7 UnboundLocalError: local variable 'a' referenced before assignment5 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]3
1 2 geeksforgeeks0
UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0UnboundLocalError: local variable 'a' referenced before assignment95 # global variable 2UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0Value of x inside a function : 20 Value of x outside a function : 2000 Value of x inside a function : 20 Value of x outside a function : 2001 UnboundLocalError: local variable 'a' referenced before assignment7 'arr' list before executing fun(): [10, 20, 30] 'arr' list after executing fun(): [20, 30, 40]9 UnboundLocalError: local variable 'a' referenced before assignment7 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0Value of x inside a function : 20 Value of x outside a function : 2007 # global variable 2
Value of x inside a function : 20 Value of x outside a function : 207 Value of x inside a function : 20 Value of x outside a function : 204 # global variable 0Value of x inside a function : 20 Value of x outside a function : 2012 # global variable 2đầu ra Before making changing: 15 Making change After making change: 15 value of x 20 Trong ví dụ trên Trước và sau khi thực hiện thay đổi(), biến x nhận giá trị của biến cục bộ i. e x = 15. Bên ngoài hàm add(), biến x sẽ lấy giá trị được xác định trong hàm change(), i. e x = 20. Vì chúng ta đã sử dụng từ khóa global trong x để tạo biến toàn cục bên trong hàm change() (phạm vi cục bộ) Giá trị mặc định của biến toàn cục trong Python là gì?Các quy tắc cơ bản cho từ khóa toàn cầu trong Python là. Khi chúng ta tạo một biến bên trong một hàm, nó là biến cục bộ theo mặc định. Khi chúng ta định nghĩa một biến bên ngoài một hàm, biến đó là biến toàn cục theo mặc định . Bạn không cần phải sử dụng từ khóa toàn cầu.
Chúng ta có thể khởi tạo biến toàn cục trong Python không?Bạn có thể tạo một biến có phạm vi toàn cầu bằng cách khởi tạo bên ngoài tất cả các hàm trong chương trình python . Và bạn có thể truy cập biến từ bất kỳ đâu trong chương trình python.
Giá trị mặc định của biến toàn cục là gì?Giá trị mặc định→ Tất cả các biến toàn cục chưa được khởi tạo sẽ có 0 làm giá trị mặc định. Thời gian tồn tại → Thời gian tồn tại của các biến này là cho đến khi kết thúc quá trình thực thi chương trình.
Tại sao các biến toàn cục luôn được khởi tạo thành 0?Các biến toàn cục và biến tĩnh được khởi tạo theo giá trị mặc định của chúng bởi vì biến này theo tiêu chuẩn C hoặc C++ và có thể tự do gán giá trị bằng 0 tại thời điểm biên dịch. Both static and global variable behave same to the generated object code. |