Hướng dẫn how do you change a global variable in a function python? - làm cách nào để thay đổi một biến toàn cục trong một hàm python?


Biến toàn cầu

Cá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.

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)
  print("Python is " + 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)
  x = "fantastic"
  print("Python is " + 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"
  global x
  x = "fantastic"

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)

x = "tuyệt vời"

def myfunc (): & nbsp; in ("Python là" + x)
  global x
  x = "fantastic"

myfunc()

Hãy tự mình thử »

Hãy tự mình thử »



Các biến toàn cầu và cục bộ cùng tên

Kiểm tra ví dụ này,

Quảng cáo

total = 100 

def func1(): 
   total = 15 

print('Total = ', total) 

func1() 

print('Total = ', total)
Output:
Total = 100 
Total = 100

Ở đây 'Tổng số' là một biến toàn cầu và hàm func () có một biến cục bộ cùng tên. Theo mặc định, một hàm ưu tiên cho biến cục bộ hơn biến toàn cầu nếu cả hai đều có cùng tên. Do đó, trong mã trên khi chúng tôi sửa đổi biến 'tổng' bên trong hàm thì nó không được phản ánh bên ngoài hàm. Bởi vì bên trong hàm func () Tổng biến được coi là biến cục bộ.total' is a global variable and func() function has a local variable with same name. By default a function gives preference to
local variable over global variable if both are of same name. Therefore in above code when we modified 'total' variable inside the function then it was not reflected outside the function. Because inside function func() total variable is treated as local variable.

Nhưng điều gì sẽ xảy ra nếu muốn truy cập biến toàn cầu bên trong một hàm có biến cục bộ cùng tên?

Sử dụng từ khóa toàn cầu † để sửa đổi biến toàn cầu bên trong một chức năng

Nếu chức năng của bạn có một biến cục bộ có cùng tên với biến toàn cầu và bạn muốn sửa đổi chức năng biến toàn cầu bên trong thì hãy sử dụng từ khóa 'toàn cầu' trước tên biến khi bắt đầu chức năng, tức là.

global total

Nó sẽ làm cho chức năng tham khảo tổng số biến toàn cầu bất cứ khi nào được truy cập. Kiểm tra ví dụ này,

total = 100
def func():
    # refer to global variable 'total' inside function
    global total
    if total > 10:
        total = 15

print('Total = ', total)
func()
print('Total = ', total)

Output:

Total =  100
Total =  15

Như bạn có thể thấy sửa đổi được thực hiện cho tổng số biến toàn cầu hiện có thể nhìn thấy bên ngoài chức năng.

Khi chúng tôi sử dụng từ khóa toàn cầu với một biến bên trong hàm thì biến cục bộ sẽ được ẩn. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn giữ Bot là biến cục bộ & toàn cầu với giống nhau và sửa đổi cả hai trong chức năng? Hãy xem làm thế nào để làm điều đó,

Sử dụng Globals () để truy cập các biến toàn cầu bên trong hàm

Vì các từ khóa 'toàn cầu' ẩn biến cục bộ có cùng tên, vì vậy để truy cập cả biến cục bộ và toàn cầu bên trong một hàm, có một cách khác, tức là toàn cầu () Sử dụng nó để truy cập / sửa đổi biến toàn cầu mà không cần sử dụng từ khóa 'toàn cầu' I, e.'global' keywords hide the local variable with same name, so to access both the local & global variable inside a function there is an another way i.e. global() function.
globals() returns a dictionary of elements in current module and we can use it to access / modify the global variable without using 'global' keyword i,e.

total = 100

def func3():
    listOfGlobals = globals()
    listOfGlobals['total'] = 15
    total = 22
    print('Local Total = ', total)

print('Total = ', total)
func3()
print('Total = ', total)

Đầu ra:

Total =  15
Local Total =  22
Total =  11

Như bạn có thể thấy rằng chúng tôi có biến cục bộ và biến toàn cầu với cùng tên, tức là tổng số và chúng tôi đã sửa đổi cả hai bên trong hàm. Bằng cách sử dụng từ điển được trả về bởi Globals () để tham khảo biến toàn cầu thay vì từ khóa 'toàn cầu'. Nó sẽ không ẩn biến cục bộ bên trong hàm.globals() to refer global variable instead of keyword 'global'. It will not hide local variable inside the function.

Xử lý lỗi không liên lạc

Nếu chúng ta cố gắng truy cập một biến toàn cầu với từ khóa 'toàn cầu' hoặc toàn cầu () bên trong một hàm, tức là.

total = 22
def func2():
    if total > 10:
        total = 15

Nó sẽ ném một lỗi như thế này,

UnboundLocalError: local variable 'total' referenced before assignment

Để ngăn chặn lỗi này, chúng tôi cần sử dụng từ khóa 'toàn cầu' hoặc hàm toàn cầu (), tức là.

Output:
0

Ví dụ hoàn chỉnh về biến toàn cầu và toàn cầu () trong Python

Output:
1

Output:

Output:
2

Bạn có thể thay đổi giá trị của một biến toàn cầu?

Các giá trị biến toàn cầu mà bạn có thể thay đổi xuất hiện trong dấu ngoặc đơn trên bảng điều khiển Globals.Nếu một giá trị không được đặt trong ngoặc đơn, nó chỉ được đọc.. If a value is not enclosed in parentheses, it is read-only.

Làm thế nào để bạn thay đổi một biến toàn cầu cục bộ trong Python?

Từ khóa toàn cầu.Từ khóa toàn cầu được sử dụng để sửa đổi biến toàn cầu ngoài phạm vi và ý nghĩa hiện tại của nó.Nó được sử dụng để thực hiện các thay đổi trong biến toàn cầu trong bối cảnh địa phương.Từ khóa 'toàn cầu' cũng được sử dụng để tạo hoặc khai báo một biến toàn cầu bên trong một hàm.. Global keyword is used to modify the global variable outside its current scope and meaning. It is used to make changes in the global variable in a local context. The keyword 'Global' is also used to create or declare a global variable inside a function.

Làm thế nào để bạn truy cập một biến toàn cầu bên trong một chức năng trong Python?

Nếu bạn muốn tham khảo một biến toàn cầu trong một hàm, bạn có thể sử dụng từ khóa toàn cầu để khai báo các biến nào là toàn cầu.use the global keyword to declare which variables are global.