Là từ điển toàn cầu trong 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

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

  • Nếu một biến được gán một giá trị ở bất kỳ đâu trong phần thân của hàm, thì biến đó được coi là biến cục bộ trừ khi được khai báo rõ ràng là biến toàn cục
  • Các biến chỉ được tham chiếu bên trong một hàm là toàn cục
  • Chúng tôi sử dụng từ khóa toàn cầu để sử dụng biến toàn cục bên trong một hàm
  • Không cần sử dụng các từ khóa toàn cầu bên ngoài một chức năng

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ề python

ví dụ 1. Truy cập biến toàn cục từ bên trong một hàm

Python3




# global variable

a=

UnboundLocalError: local variable 'a' referenced before assignment
0

UnboundLocalError: local variable 'a' referenced before assignment
1=
UnboundLocalError: local variable 'a' referenced before assignment
3

 

UnboundLocalError: local variable 'a' referenced before assignment
4

UnboundLocalError: local variable 'a' referenced before assignment
5
UnboundLocalError: local variable 'a' referenced before assignment
6

UnboundLocalError: local variable 'a' referenced before assignment
7
UnboundLocalError: local variable 'a' referenced before assignment
8= a
Value of x inside a function : 20
Value of x outside a function : 20
1
UnboundLocalError: local variable 'a' referenced before assignment
1

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4
Value of x inside a function : 20
Value of x outside a function : 20
5

 

 

Value of x inside a function : 20
Value of x outside a function : 20
6

Value of x inside a function : 20
Value of x outside a function : 20
7

đầ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àm

Python3




a=

UnboundLocalError: local variable 'a' referenced before assignment
0

 

 

'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
1

UnboundLocalError: local variable 'a' referenced before assignment
5
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
3

UnboundLocalError: local variable 'a' referenced before assignment
7
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
5

UnboundLocalError: local variable 'a' referenced before assignment
7
UnboundLocalError: local variable 'a' referenced before assignment
1= a
Value of x inside a function : 20
Value of x outside a function : 20
1
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
1

UnboundLocalError: local variable 'a' referenced before assignment
7a=
UnboundLocalError: local variable 'a' referenced before assignment
1

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4
'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ầu

Python3




1
2
geeksforgeeks
0_______137_______
UnboundLocalError: local variable 'a' referenced before assignment
0

 

 

UnboundLocalError: local variable 'a' referenced before assignment
5
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
3

UnboundLocalError: local variable 'a' referenced before assignment
7
1
2
geeksforgeeks
6

UnboundLocalError: local variable 'a' referenced before assignment
7
1
2
geeksforgeeks
8
1
2
geeksforgeeks
0

 

UnboundLocalError: local variable 'a' referenced before assignment
7
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
5

UnboundLocalError: local variable 'a' referenced before assignment
7
1
2
geeksforgeeks
0=
1
2
geeksforgeeks
0
Value of x inside a function : 20
Value of x outside a function : 20
1
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
1

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0# global variable1# global variable2

 

 

'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 : 20
4# global variable0# global variable6# global variable2

đầ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ầu

ví 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ầu

Tạ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




# global variable8= a0

UnboundLocalError: local variable 'a' referenced before assignment
3a2a3a2a5a6

 

 

UnboundLocalError: local variable 'a' referenced before assignment
5 a8

UnboundLocalError: local variable 'a' referenced before assignment
7=0 =1=2 =3# global variable0=5=6

=7_______137_______8

Value of x inside a function : 20
Value of x outside a function : 20
1=
UnboundLocalError: local variable 'a' referenced before assignment
3

 

 

Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0_______0_______04
UnboundLocalError: local variable 'a' referenced before assignment
05

UnboundLocalError: local variable 'a' referenced before assignment
06

Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
UnboundLocalError: local variable 'a' referenced before assignment
09
UnboundLocalError: local variable 'a' referenced before assignment
05

đầ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




# global variable8= a0

UnboundLocalError: local variable 'a' referenced before assignment
3a2a3a2a5a6

 

 

UnboundLocalError: local variable 'a' referenced before assignment
5 a8

UnboundLocalError: local variable 'a' referenced before assignment
7
1
2
geeksforgeeks
8 # global variable8

UnboundLocalError: local variable 'a' referenced before assignment
7# global variable8= a0a3a2a5a2
UnboundLocalError: local variable 'a' referenced before assignment
33a6

 

 

Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0_______0_______04
UnboundLocalError: local variable 'a' referenced before assignment
05

UnboundLocalError: local variable 'a' referenced before assignment
06

Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
UnboundLocalError: local variable 'a' referenced before assignment
09
UnboundLocalError: local variable 'a' referenced before assignment
05

đầ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 Python

Cá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ục

Python3




1
2
geeksforgeeks
0____137_______
UnboundLocalError: local variable 'a' referenced before assignment
46

UnboundLocalError: local variable 'a' referenced before assignment
47_______137_______
UnboundLocalError: local variable 'a' referenced before assignment
46

UnboundLocalError: local variable 'a' referenced before assignment
50=
UnboundLocalError: local variable 'a' referenced before assignment
52

mã 2. Tạo một sửa đổi. py để sửa đổi các biến toàn cục

Python3




UnboundLocalError: local variable 'a' referenced before assignment
53
UnboundLocalError: local variable 'a' referenced before assignment
54

UnboundLocalError: local variable 'a' referenced before assignment
55=
UnboundLocalError: local variable 'a' referenced before assignment
57

UnboundLocalError: local variable 'a' referenced before assignment
58=
UnboundLocalError: local variable 'a' referenced before assignment
60

UnboundLocalError: local variable 'a' referenced before assignment
61=
UnboundLocalError: local variable 'a' referenced before assignment
63

Ở đâ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ục

Python3




UnboundLocalError: local variable 'a' referenced before assignment
53
UnboundLocalError: local variable 'a' referenced before assignment
54

UnboundLocalError: local variable 'a' referenced before assignment
53
UnboundLocalError: local variable 'a' referenced before assignment
67

Value of x inside a function : 20
Value of x outside a function : 20
4
UnboundLocalError: local variable 'a' referenced before assignment
69

Value of x inside a function : 20
Value of x outside a function : 20
4
UnboundLocalError: local variable 'a' referenced before assignment
71

Value of x inside a function : 20
Value of x outside a function : 20
4
UnboundLocalError: local variable 'a' referenced before assignment
73

đầ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

Python3




UnboundLocalError: local variable 'a' referenced before assignment
74

UnboundLocalError: local variable 'a' referenced before assignment
75

 

UnboundLocalError: local variable 'a' referenced before assignment
5
UnboundLocalError: local variable 'a' referenced before assignment
6

UnboundLocalError: local variable 'a' referenced before assignment
7
1
2
geeksforgeeks
0=
UnboundLocalError: local variable 'a' referenced before assignment
0

UnboundLocalError: local variable 'a' referenced before assignment
7
UnboundLocalError: local variable 'a' referenced before assignment
5
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
3

=7_______33_______8

1
2
geeksforgeeks
0

=7_______33_______0= a3

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
UnboundLocalError: local variable 'a' referenced before assignment
95# global variable2

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
Value of x inside a function : 20
Value of x outside a function : 20
00
Value of x inside a function : 20
Value of x outside a function : 20
01

UnboundLocalError: local variable 'a' referenced before assignment
7
'arr' list before executing fun[]: [10, 20, 30]
'arr' list after executing fun[]: [20, 30, 40]
9

UnboundLocalError: local variable 'a' referenced before assignment
7
Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
Value of x inside a function : 20
Value of x outside a function : 20
07# global variable2

 

Value of x inside a function : 20
Value of x outside a function : 20
7

Value of x inside a function : 20
Value of x outside a function : 20
4# global variable0
Value of x inside a function : 20
Value of x outside a function : 20
12# global variable2

đầ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ộ]

Một từ điển có thể là toàn cầu?

Từ điển chung là một tệp chứa các từ và có thể được sử dụng để kiểm tra chính tả bởi bất kỳ dự án Flare nào bạn mở trên máy tính của mình . Đây là một cách thuận tiện để đảm bảo rằng tất cả các dự án của bạn đang sử dụng cách viết giống nhau cho các thuật ngữ, thay vì mỗi dự án dựa vào một từ điển khác nhau. Xem từ điển.

Các danh sách có luôn toàn cục trong Python không?

Bạn chỉ cần sử dụng tên chung nếu bạn đang gán cho tên chung . Không có toàn cầu, một nhiệm vụ sẽ tạo ra một địa phương mới. Không có gì đặc biệt về cách toàn cầu áp dụng cho một danh sách— toàn cầu chỉ ảnh hưởng đến phạm vi và độ phân giải tên.

Điều gì được coi là biến toàn cục trong Python?

Biến toàn cục trong Python thường được khai báo ở đầu chương trình. Nói cách khác, các biến được khai báo bên ngoài hàm được gọi là biến toàn cục. Bạn có thể truy cập các biến toàn cục trong Python cả bên trong và bên ngoài hàm.

Python có chuyển từ điển theo tham chiếu không?

Về bản chất, có thể nói rằng các đối tượng có thể thay đổi như từ điển, bộ và danh sách được truyền theo tham chiếu . Các đối tượng bất biến như int , str , tuple được truyền theo giá trị.

Chủ Đề