Trong bài viết này, bạn sẽ tìm hiểu về từ khóa toàn cầu, biến toàn cục và khi nào sử dụng từ khóa toàn cầu.

Bạn đang xem : global trong python là gì

Trước khi đọc bài viết này, hãy đảm bảo rằng bạn đã nắm được một số kiến ​​thức cơ bản về Python Global, Local và Nonlocal Variables .

Từ khóa toàn cầu là gì

Trong Python, từ khóa global cho phép bạn sửa đổi biến bên ngoài phạm vi hiện tại. Nó được sử dụng để tạo một biến toàn cục và thực hiện các thay đổi đối với biến đó trong ngữ cảnh cục bộ.

Quy tắc của Từ khóa toàn cầu

Các quy tắc cơ bản cho từ khóa global trong Python là:

  • Khi chúng ta tạo một biến bên trong một hàm, nó sẽ là cục bộ theo mặc định.
  • Khi chúng tôi xác định một biến bên ngoài một hàm, 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 global .
  • Chúng tôi sử dụng từ khóa global để đọc và ghi một biến toàn cục bên trong một hàm.
  • Việc sử dụng từ khoá global bên ngoài một hàm không có tác dụng.

Sử dụng Từ khóa toàn cầu

Hãy lấy một ví dụ.

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

 c = 1 # biến toàn cục

def add ():
    in (c)

add ()  

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là:

1 

Tuy nhiên, chúng tôi có thể gặp một số trường hợp cần sửa đổi biến toàn cục từ bên trong một hàm.

Ví dụ 2: Sửa đổi biến toàn cục từ bên trong hàm

 c = 1 # biến toàn cục
    
def add ():
    c = c + 2 # tăng c bằng 2
    in (c)

add ()  

Khi chúng tôi chạy chương trình trên, đầu ra hiển thị lỗi:

UnboundLocalError: biến cục bộ 'c' được tham chiếu trước khi chuyển nhượng 

Điều này là do chúng tôi chỉ có thể truy cập biến toàn cục nhưng không thể sửa đổi nó từ bên trong hàm.

Xem Thêm  Sử dụng Hiệu ứng Hook - Phản ứng - phản ứng hiệu ứng sử dụng gốc

Giải pháp cho việc này là sử dụng từ khóa global .

Ví dụ 3: Thay đổi biến toàn cục từ bên trong một hàm bằng cách sử dụng toàn cục

 c = 0 # biến toàn cục

def add ():
    toàn cầu c
    c = c + 2 # tăng 2
    print ("Bên trong add ():", c)

cộng()
print ("Trong main:", c)  

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là:

Bên trong add (): 2
Trong chính: 2 

Trong chương trình trên, chúng tôi định nghĩa c là một từ khóa toàn cục bên trong hàm add () .

Sau đó, chúng tôi tăng biến c bằng 2 , tức là c = c + 2 . Sau đó, chúng ta gọi hàm add () . Cuối cùng, chúng tôi in biến toàn cục c.

Như chúng ta có thể thấy, thay đổi cũng xảy ra trên biến toàn cục bên ngoài hàm, c = 2 .

Biến toàn cục trên các mô-đun Python

Trong Python, chúng tôi tạo một mô-đun duy nhất config.py để chứa các biến toàn cục và chia sẻ thông tin giữa các mô-đun Python trong cùng một chương trình.

Đây là cách chúng tôi có thể chia sẻ các biến toàn cục trên các mô-đun python.

Ví dụ 4: Chia sẻ một biến toàn cầu qua các mô-đun Python

Tạo tệp config.py để lưu trữ các biến toàn cục

 a = 0
b = "trống"  

Tạo tệp update.py để thay đổi các biến toàn cục

 nhập cấu hình

config.a = 10
config.b = "bảng chữ cái"  

Tạo tệp main.py để kiểm tra các thay đổi về giá trị

 nhập cấu hình
nhập cập nhật

in (config.a)
print (config.b)  

Khi chúng tôi chạy tệp main.py , đầu ra sẽ là

10
bảng chữ cái 

Ở trên, chúng tôi đã tạo ba tệp: config.py , update.py main.py .

Mô-đun config.py lưu trữ các biến toàn cục của a và b. Trong tệp update.py , chúng tôi nhập mô-đun config.py và sửa đổi các giá trị của a và b. Tương tự, trong tệp main.py , chúng tôi nhập cả mô-đun config.py update.py . Cuối cùng, chúng tôi in và kiểm tra các giá trị của các biến toàn cục xem chúng có bị thay đổi hay không.

Toàn cục trong các hàm lồng nhau

Đây là cách bạn có thể sử dụng một biến toàn cục trong hàm lồng nhau.

Ví dụ 5: Sử dụng một biến toàn cục trong hàm lồng nhau

 def foo ():
    x = 20

    thanh def ():
        toàn cầu x
        x = 25
    
    print ("Trước khi gọi thanh:", x)
    print ("Thanh đang gọi ngay bây giờ")
    quán ba()
    print ("Sau khi gọi thanh:", x)

foo ()
print ("x trong main:", x)  

Đầu ra là:

Trước khi gọi thanh: 20
Đang gọi thanh
Sau khi gọi thanh: 20
x trong chính: 25 

Trong chương trình trên, chúng tôi đã khai báo một biến toàn cục bên trong hàm lồng nhau bar () . Bên trong hàm foo () , x không ảnh hưởng đến từ khóa chung.

Trước và sau khi gọi bar () , biến x nhận giá trị của biến cục bộ, tức là x = 20 . Bên ngoài hàm foo () , biến x sẽ nhận giá trị được xác định trong hàm bar () tức là x = 25 . Điều này là do chúng tôi đã sử dụng từ khóa global trong x để tạo biến toàn cục bên trong hàm bar () (phạm vi cục bộ).

Nếu chúng tôi thực hiện bất kỳ thay đổi nào bên trong hàm bar () , các thay đổi sẽ xuất hiện bên ngoài phạm vi cục bộ, tức là foo () .


Xem thêm những thông tin liên quan đến chủ đề toàn cầu trong python là gì

[Python] B14.01 – Hàm (def) – P01

  • Tác giả: Ha Huynh
  • Ngày đăng: 2022-04-14
  • Đánh giá: 4 ⭐ ( 8458 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Các toán tử cơ bản trong Python

  • Tác giả: toidicode.com
  • Đánh giá: 3 ⭐ ( 5295 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ở phần kiểu dữ liệu number trong Python mình cũng nói qua về một số toán tử trong Python rồi, nhưng đó mới chỉ là một phần nhỏ thôi, trên thực tế thì Python sẽ có các toán tử cơ bản như sau:

Khóa phiên dịch toàn cầu (GIL) trong CPython là gì?

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 3528 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] GIL của Python được dự định tuần tự hóa quyền truy cập vào các thông dịch…

Tổng quan về các biến cục bộ và toàn cục của Python

  • Tác giả: t3h.com.vn
  • Đánh giá: 3 ⭐ ( 4840 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này mô tả khái niệm về các biến cục bộ và toàn cục trong Python và cách xác định các biến toàn cục. Chúng ta cũng sẽ xem xét những gì được gọi là “biến không cục bộ”.

PEP8 – Chuẩn Kết Nối Toàn Cầu Của Python Dev (Phần 1)

  • Tác giả: codelearn.io
  • Đánh giá: 5 ⭐ ( 9436 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Nếu bạn là một Python developer, chúc mùng bạn, vì bạn dễ dàng được “học” và làm quen với chuẩn định dạng code “toàn cầu” có tên PEP-8.

Từ khóa toàn cầu trong Python (Có ví dụ)

  • Tác giả: vi.wiki-base.com
  • Đánh giá: 3 ⭐ ( 7224 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Tại sao Bộ mã hóa Python lại có nhu cầu trên toàn cầu đến vậy

  • Tác giả: helpex.vn
  • Đánh giá: 3 ⭐ ( 8846 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tại một thời điểm nào đó trong cuộc đời, bạn quyết định muốn trở thành một lập trình viên. Cùng lúc đó, bạn bắt đầu có ước mơ được làm việc trong các công ty khổng lồ, thân thiện với nhâ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

By ads_php