Biến toàn cục và cách thay đổi từ một hàm trong Python – cách cập nhật một biến toàn cục trong python

Trong bài viết python này, chúng ta sẽ tìm hiểu về các biến toàn cục và từ khóa toàn cục trong Python. Chúng ta sẽ thảo luận về cách thay đổi một biến toàn cục từ một hàm trong Python. Chúng ta cũng sẽ tìm hiểu cách chúng ta có thể tạo và truy cập một biến toàn cục.

Bạn đang xem : cách cập nhật biến toàn cục trong python

Biến toàn cục trong Python là những biến có phạm vi toàn cầu . Nói cách khác, phạm vi của chúng không giới hạn ở bất kỳ hàm hoặc khối cụ thể nào của mã nguồn.

Sử dụng Biến toàn cục và Thay đổi chúng từ một hàm trong Python

Đầu tiên, khai báo biến x .

  def avengers ():
    x = 10
    print ("Gibberish")

Những người báo thù()
print (x)
 

Đầu ra:

  Gibberish

NameError: tên 'x' không được xác định
 

Biến x nằm bên trong hàm avengers . Điều này có nghĩa là phạm vi của biến này chỉ được giới hạn trong hàm này.

Đó là lý do tại sao chúng tôi gặp lỗi nếu cố gắng truy cập vào biến này bên ngoài hàm này.

Tạo biến Global trong Python

Di chuyển khai báo biến x ra bên ngoài hàm.

  x = 10
def avengers ():
    print ("Gibberish")

Những người báo thù()
print (x)
 

Đầu ra:

  Gibberish
10
 

Biến x được định nghĩa bên ngoài hàm và do đó, chúng ta có thể sử dụng nó ở bất kỳ đâu trong chương trình của mình.

Ngoài ra, nó còn một biến global . Khai báo một biến trong phạm vi toàn cục sẽ tạo ra một biến global trong Python.

Chúng tôi cũng có thể truy cập vào biến global x từ hàm avengers .

  x = 10
def avengers ():
    print ("Từ avengers:", x)

Những người báo thù()
print ("Bên ngoài báo thù:", x)
 

Đầu ra:

  From avengers: 10
Người báo thù bên ngoài: 10
 

Thay đổi giá trị của Global Biến Từ a Hàm trong Python

Mã này có biến toàn cục x với 10 . Sau đó, bên trong hàm change , chúng ta thêm 12 vào biến x này.

Một câu lệnh in bên trong hàm sẽ in giá trị cập nhật của x .

  x = 10
def thay đổi ():
    x = x + 12
    print (x)

biến đổi()
 

Đầu ra:

  UnboundLocalError: biến cục bộ 'x' được tham chiếu trước khi gán
 

Trong python, một hàm chỉ có thể truy cập và in một biến toàn cục . Chúng ta cần thông báo cho hàm tham chiếu đến bất kỳ phép gán hoặc thay đổi nào đối với biến toàn cục .

Nếu chúng ta không chỉ định điều này, hàm nghĩ rằng các phép gán và thay đổi được thực hiện cho cục bộ biến chính nó. Do đó, chúng tôi gặp lỗi này.

Sử dụng từ khóa global để thay đổi giá trị biến toàn cục từ bên trong một hàm Python.

the Global Keyword in Python

Python cung cấp cho bạn một từ khóa có tên global để sửa đổi một biến bên ngoài phạm vi của nó. Sử dụng nó khi bạn phải thay đổi giá trị của một biến hoặc thực hiện bất kỳ bài tập nào.

Xem Thêm  Biến toàn cục trong Python với các ví dụ [Đã cập nhật] - cách tạo một biến toàn cục trong python

Chúng ta hãy thử sửa mã trên bằng từ khóa global .

  x = 10
def thay đổi ():
    toàn cầu x
    x = x + 12
    print (x)

biến đổi()
 

Đầu ra:

  22
 

Xem cách chúng tôi chỉ định x là toàn cục bằng cách sử dụng từ khóa global ở dòng thứ ba.

Bây giờ, hãy cho chúng tôi thấy giá trị của biến x khi in nó ra bên ngoài hàm.

  x = 10
def thay đổi ():
    toàn cầu x
    x = x + 12
    print (x)

biến đổi()
print (x)
 

Đầu ra:

 22
22
 

Vì hàm đã cập nhật x từ 10 thành 22 , chúng tôi sẽ nhận được giá trị cập nhật là xuất ngay cả khi truy cập biến bên ngoài phạm vi cục bộ.

  var = 'A'

sô cô la def ():
    print ("Từ sô cô la:", var)
    
bánh def ():
    var toàn cầu
    var = var * 2
    print ("Từ cake:", var)

sô cô la()
bánh()
print ("Từ main:", var)
 

Đầu ra:

  Từ sô cô la: A
Từ bánh: AA
Từ chính: AA
 

Suy luận tốt nhất bạn có thể rút ra từ kết quả này là – vấn đề đặt hàng. Hàm chocolate sử dụng giá trị ban đầu của var chứ không phải giá trị đã sửa đổi.

Điều này là do hàm cake sửa đổi giá trị của var được gọi sau hàm chocolate . Nếu chúng ta gọi hàm cake trước, thì hàm chocolate cũng sẽ sử dụng giá trị cập nhật của var .

  var = 'A'

sô cô la def ():
    print ("Từ sô cô la:", var)

bánh def ():
    var toàn cầu
    var = var * 2
    print ("Từ cake:", var)

bánh()
sô cô la()
print ("Từ main:", var)
 

Đầu ra:

  Từ bánh: AA
Từ sô cô la: AA
Từ chính: AA
 

Điều này đưa chúng ta đến một số quy tắc mà bạn phải tuân theo khi sử dụng từ khóa global của Python.

  • Theo mặc định, một biến bên trong một hàm là cục bộ và một biến bên ngoài một hàm là global . Không sử dụng từ khóa này cho các biến bên ngoài một hàm.
  • Việc sử dụng từ khóa global bên ngoài một hàm trong Python không ảnh hưởng đến mã theo bất kỳ cách nào.
  • Việc sử dụng chính của từ khóa global là thực hiện các bài tập hoặc thay đổi trong Python. Do đó, chúng tôi không cần nó để truy cập hoặc in biến một cách đơn giản.

Nhiều hàm và một biến toàn cục

Ở đây, chúng ta có một biến toàn cục s với giá trị 1 . Xem cách hàm college sử dụng từ khóa global để sửa đổi giá trị của ngôn ngữ s .

  s = 1

trường đại học def ():
    toàn cầu s
    s = s + 5
    print ("Sinh viên đại học:", s)
    trả lại s

trường def ():
    s = đại học ()
    s = s + 10
    print ("Học sinh của trường:", s)
    trả lại s

trường đại học()
trường học()
print ("Sinh viên toàn cầu:", s)
 

Đầu ra:

  College học sinh: 6
Sinh viên đại học: 11
Học sinh toàn trường: 21
Sinh viên toàn cầu: 11
 

Đầu tiên, chúng tôi gọi hàm college . Hàm này sửa đổi biến toàn cục s và thay đổi nó thành 6 .

Chúng tôi nhận được kết quả đầu ra là 6 từ đầu tiên bản in. Sau đó, chúng ta gọi hàm school .

Chúng ta lại gọi hàm school bên trong hàm college . Lần này, hàm college cũng sửa đổi giá trị của biến s .

Nó lấy giá trị trước đó của 6 và sau đó cập nhật nó thành 11 . Vì vậy, giá trị cuối cùng của biến toàn cục bây giờ trở thành 11 .

Sau đó, hàm school sửa đổi nó, nhưng điều này sẽ không được cập nhật trong biến toàn cục. Nó sử dụng giá trị cập nhật của s và in giá trị sau khi thêm 10 .

Nó không sử dụng từ khóa global . Do đó, đầu ra 21 . Bây giờ bạn có thể hiểu tại sao đầu ra của câu lệnh cuối cùng là 11 .

Đây không phải là gì ngoài giá trị cập nhật của biến toàn cục s .

Xem Thêm  Thanh điều hướng dọc CSS - cách tạo thanh điều hướng dọc trong html

một hàm có một biến có cùng tên với Biến toàn cục

Có khả năng là chúng ta có một hàm có một biến được khai báo bên trong nó có cùng tên với biến toàn cục .

An Câu hỏi không thể tránh khỏi nảy sinh ở đây là – hàm sẽ sử dụng biến nào? Địa phương hay Toàn cầu? Hãy để chúng tôi xem.

  # biến toàn cục
a = 5

#hàm số
def nhạc ():

    #variable bên trong hàm có cùng tên với biến toàn cục
    a = 10
    print ("Nhạc:", a)

Âm nhạc()
in (a)

Đầu ra:

  Âm nhạc: 10
5
 

Có một biến toàn cục a trong mã này, có giá trị là 5 . Hàm music cũng có một biến có tên là a .

Giá trị của biến này là 10 . Khi chúng tôi truy cập giá trị của biến a bên trong hàm, chúng tôi nhận được giá trị của biến cục bộ cho hàm này, là 10 .

Khi chúng tôi truy cập giá trị của a từ bên ngoài hàm này, chúng tôi nhận được kết quả đầu ra là 5 .

Điều này ngụ ý rằng nếu local < / code> biến có cùng tên với biến global trong một phạm vi cụ thể, nó có mức độ ưu tiên hơn so với biến toàn cục.

Kết luận

Hướng dẫn này đã dạy các kiến ​​thức cơ bản về các biến global trong Python. Chúng tôi đã thấy chúng khác với các biến local như thế nào và cách chúng tôi tạo chúng bằng Python.

Viết cho chúng tôi

Các bài viết về DelftStack được viết bởi những người yêu thích phần mềm như bạn. Nếu bạn cũng muốn đóng góp cho DelftStack bằng cách viết các bài báo trả phí, bạn có thể xem trang viết cho chúng tôi .


Xem thêm những thông tin liên quan đến chủ đề cách cập nhật một biến toàn cục trong python

Python 3 Programming Tutorial - Global and Local Variables

  • Tác giả: sentdex
  • Ngày đăng: 2014-04-20
  • Đánh giá: 4 ⭐ ( 3695 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Welcome to another python 3 basics video, in this video we're going to now discuss the concept of global and local variables.

    When users begin using functions, they can quickly become confused when it comes to global and local variables... getting a the dreaded variable is not defined even when they clearly see that it is... or so they think.

    These terms of global and local correspond to a variable's reach within a script or program. A global variable is one that can be accessed anywhere. A local variable is the opposite, it can only be accessed within its frame. The difference is that global variables can be accessed locally, but not modified locally inherently.

    A local variable cannot be accessed globally, inherently. Now, dont worry about committing that to memory right now, I think it makes a lot more sense when you just see and do it, so let's do that.

    Sample code for this basics series: http://pythonprogramming.net/beginner-python-programming-tutorials/

    Python 3 Programming tutorial Playlist: http://www.youtube.com/watch?v=oVp1vrfL_w4&feature=share&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M

Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python

  • Tác giả: topdev.vn
  • Đánh giá: 3 ⭐ ( 5031 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết được sự cho phép của tác giả Nguyễn Chí Thức Trong bài Python này bạn sẽ học về biến toàn cục (global), biến cục bộ (local), biến nonlocal trong

[Tự học Python] Biến toàn cục và biến cục bộ trong Python

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 6558 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Biến toàn cục là biến được định nghĩa và khai báo bên ngoài hàm và chúng ta cần sử dụng chúng trong hàm.

Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python

  • Tác giả: quantrimang.com
  • Đánh giá: 5 ⭐ ( 5747 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài Python này bạn sẽ học về biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python và trường hợp sử dụng các biến này.

Biến toàn cục và biến cục bộ trong Python

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 4 ⭐ ( 2277 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Biến toàn cục và biến cục bộ trong Python - Lập Trình Từ Đầu 8 Hàm trong Python

Làm cách nào để bạn thay đổi một biến toàn cục trong python?

  • Tác giả: presbyteryofstockton.org
  • Đánh giá: 3 ⭐ ( 2338 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sử dụng từ khóa "toàn cục" để sửa đổi biến toàn cục bên trong một hàm. Nếu hàm của bạn có một biến cục bộ có cùng tên với biến toàn cục và bạn muốn sửa đổi biến toàn cục bên trong hàm thì hãy sử dụng từ khóa 'global' trước tên biến ở đầu hàm, tức là.

Biến Trong Python

  • Tác giả: techacademy.edu.vn
  • Đánh giá: 4 ⭐ ( 4131 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Techacademy sẽ giới thiệu với các bạn về BIẾN TRONG PYTHON. Một phần tuy cơ bản nhưng rất quan trọng trong lập trình và nó sẽ theo bạn mãi cho tới khi bạn còn code. I. Trong Python Biến Là Gì Có hai trường phái định nghĩa biến trong python như sau: Trường phái đầu tiên […]

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình