Làm cách nào để cập nhật biến toàn cục trong python?

Biến

Gibberish

NameError: name 'x' is not defined
6 trong Python là những biến có một biến
Gibberish

NameError: name 'x' is not defined
7. Nói cách khác, phạm vi của chúng không bị giới hạn ở bất kỳ chức năng hoặc khối cụ thể nào của mã nguồn

Sử dụng
Gibberish

NameError: name 'x' is not defined
8 và thay đổi chúng từ một hàm trong Python

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

Gibberish

NameError: name 'x' is not defined
9

def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]

đầu ra

Gibberish

NameError: name 'x' is not defined

Biến

Gibberish

NameError: name 'x' is not defined
9 nằm bên trong hàm
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
1. Điều này có nghĩa là phạm vi của biến này chỉ giới hạn ở chức năng này

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

Tạo biến
Gibberish

NameError: name 'x' is not defined
6 trong Python

Di chuyển khai báo biến

Gibberish

NameError: name 'x' is not defined
9 ra ngoài hàm

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]

đầu ra

Biến

Gibberish

NameError: name 'x' is not defined
9 đượ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ó là một biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5. Khai báo một biến trong phạm vi toàn cầu sẽ tạo một biến
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 trong Python

Chúng ta cũng có thể truy cập biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5
Gibberish

NameError: name 'x' is not defined
9 từ hàm
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
1

Gibberish

NameError: name 'x' is not defined
7

đầu ra

Gibberish

NameError: name 'x' is not defined
8

Thay đổi giá trị của biến
Gibberish

NameError: name 'x' is not defined
6 từ một hàm trong Python

Mã này có một biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5
Gibberish

NameError: name 'x' is not defined
9 với
Gibberish

NameError: name 'x' is not defined
73. Sau đó, bên trong hàm
Gibberish

NameError: name 'x' is not defined
74, chúng ta thêm
Gibberish

NameError: name 'x' is not defined
75 vào biến này
Gibberish

NameError: name 'x' is not defined
9

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

Gibberish

NameError: name 'x' is not defined
9

Gibberish

NameError: name 'x' is not defined
7

đầu ra

Gibberish

NameError: name 'x' is not defined
8

Trong python, một hàm chỉ có thể truy cập và in một

Gibberish

NameError: name 'x' is not defined
78. Chúng ta cần thông báo cho hàm tham chiếu về bất kỳ nhiệm vụ hoặc thay đổi nào đối với
Gibberish

NameError: name 'x' is not defined
78

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

Sử dụng từ khóa

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 để thay đổi giá trị
Gibberish

NameError: name 'x' is not defined
78 từ bên trong hàm Python

từ khóa
Gibberish

NameError: name 'x' is not defined
6 trong Python

Python cung cấp cho bạn một từ khóa có tên là

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 để sửa đổi một biến nằm 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ỳ phép gán nào

Hãy để chúng tôi thử sửa đoạn mã trên bằng từ khóa

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5

Gibberish

NameError: name 'x' is not defined
6

đầu ra

Xem cách chúng tôi chỉ định

Gibberish

NameError: name 'x' is not defined
9 là toàn cục bằng cách sử dụng từ khóa
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 ở dòng thứ ba

Bây giờ chúng ta hãy xem giá trị của biến

Gibberish

NameError: name 'x' is not defined
9 khi in ra bên ngoài hàm

def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
0

đầu ra

Vì hàm đã cập nhật

Gibberish

NameError: name 'x' is not defined
9 từ
Gibberish

NameError: name 'x' is not defined
73 thành
Gibberish

NameError: name 'x' is not defined
70, nên chúng ta sẽ nhận được giá trị được cập nhật dưới dạng đầu ra ngay cả khi truy cập biến bên ngoài phạm vi cục bộ

def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
4

đầu ra

Gibberish

NameError: name 'x' is not defined
0

Suy luận tốt nhất bạn có thể rút ra từ đầu ra này là - thứ tự quan trọng. Hàm

Gibberish

NameError: name 'x' is not defined
71 sử dụng giá trị ban đầu của
Gibberish

NameError: name 'x' is not defined
72 chứ không phải giá trị đã sửa đổi

Điều này là do hàm

Gibberish

NameError: name 'x' is not defined
73 sửa đổi giá trị của
Gibberish

NameError: name 'x' is not defined
72 được gọi sau hàm
Gibberish

NameError: name 'x' is not defined
71. Nếu chúng ta gọi hàm
Gibberish

NameError: name 'x' is not defined
73 trước, thì hàm
Gibberish

NameError: name 'x' is not defined
71 cũng sẽ sử dụng giá trị được cập nhật của
Gibberish

NameError: name 'x' is not defined
72

Gibberish

NameError: name 'x' is not defined
1

đầu ra

Gibberish

NameError: name 'x' is not defined
2

Đ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

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 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à
    x = 10
    def avengers[]:
        print["Gibberish"]
    
    avengers[]
    print[x]
    
    5. Không sử dụng từ khóa này cho các biến bên ngoài hàm
  • Sử dụng từ khóa
    x = 10
    def avengers[]:
        print["Gibberish"]
    
    avengers[]
    print[x]
    
    5 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
  • Công dụng chính của từ khóa
    x = 10
    def avengers[]:
        print["Gibberish"]
    
    avengers[]
    print[x]
    
    5 là thực hiện các bài tập hoặc thay đổi trong Python. Vì vậy, chúng tôi không cần nó để truy cập hoặc in biến

Nhiều chức năng và một biến toàn cầu

Ở đây, chúng ta có một biến toàn cục

Gibberish

NameError: name 'x' is not defined
83 với giá trị
Gibberish

NameError: name 'x' is not defined
84. Xem cách hàm
Gibberish

NameError: name 'x' is not defined
85 sử dụng từ khóa
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 để sửa đổi giá trị của
Gibberish

NameError: name 'x' is not defined
83

Gibberish

NameError: name 'x' is not defined
3

đầu ra

Gibberish

NameError: name 'x' is not defined
4

Đầu tiên, chúng ta gọi hàm

Gibberish

NameError: name 'x' is not defined
85. Hàm này sửa đổi biến toàn cục
Gibberish

NameError: name 'x' is not defined
83 và thay đổi nó thành
Gibberish

NameError: name 'x' is not defined
60

Chúng tôi nhận được đầu ra là

Gibberish

NameError: name 'x' is not defined
60 từ câu lệnh in đầu tiên. Sau đó, chúng ta gọi hàm
Gibberish

NameError: name 'x' is not defined
62

Chúng ta lại gọi hàm

Gibberish

NameError: name 'x' is not defined
62 bên trong hàm
Gibberish

NameError: name 'x' is not defined
85. Lần này, hàm
Gibberish

NameError: name 'x' is not defined
85 cũng sửa đổi giá trị của biến
Gibberish

NameError: name 'x' is not defined
83

Nó lấy giá trị trước đó của

Gibberish

NameError: name 'x' is not defined
60 và sau đó cập nhật nó thành
Gibberish

NameError: name 'x' is not defined
68. Vì vậy, giá trị cuối cùng của biến toàn cầu bây giờ trở thành
Gibberish

NameError: name 'x' is not defined
68

Sau đó, hàm

Gibberish

NameError: name 'x' is not defined
62 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
Gibberish

NameError: name 'x' is not defined
83 và in giá trị sau khi thêm
Gibberish

NameError: name 'x' is not defined
73

Nó không sử dụng từ khóa

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5. Do đó, đầu ra
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
04. Bây giờ bạn có thể thấy tại sao đầu ra của câu lệnh cuối cùng là
Gibberish

NameError: name 'x' is not defined
68

Đây không là gì ngoài giá trị được cập nhật của biến toàn cầu

Gibberish

NameError: name 'x' is not defined
83

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

NameError: name 'x' is not defined
6

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 một biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5

Một câu hỏi tất yếu nảy sinh ở đây là - hàm sẽ sử dụng biến nào?

Gibberish

NameError: name 'x' is not defined
5

đầu ra

Có một biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
40 trong mã này, có giá trị là
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
41. Hàm
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
42 cũng có một biến tên là
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
40

Giá trị của biến này là

Gibberish

NameError: name 'x' is not defined
73. Khi chúng ta truy cập giá trị của biến
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
40 bên trong hàm, chúng ta sẽ nhận được giá trị của biến cục bộ của hàm này, đó là
Gibberish

NameError: name 'x' is not defined
73

Khi chúng tôi truy cập giá trị của

def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
40 từ bên ngoài chức năng này, chúng tôi nhận được đầu ra là
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
41

Điều này ngụ ý rằng nếu biến

def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
49 có cùng tên với biến
x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 trong một phạm vi cụ thể, thì nó có mức độ ưu tiên cao hơn biến toàn cục

Sự kết luận

Hướng dẫn này dạy kiến ​​thức cơ bản về biến

x = 10
def avengers[]:
    print["Gibberish"]

avengers[]
print[x]
5 trong Python. Chúng ta đã thấy chúng khác với biến
def avengers[]:
    x = 10
    print["Gibberish"]

avengers[]
print[x]
49 như thế nào và cách chúng ta tạo chúng trong Python

Bạn có thể cập nhật biến toàn cục không?

Các hàm có thể truy cập các biến toàn cục và sửa đổi chúng . Sửa đổi các biến toàn cục trong một hàm được coi là thực hành lập trình kém.

Chúng ta có thể sửa đổi biến toàn cục trong Python không?

Nếu bạn chỉ muốn truy cập một biến toàn cục, bạn chỉ cần sử dụng tên của nó. Tuy nhiên để thay đổi giá trị của nó, bạn cần sử dụng từ khóa toàn cầu . e. g. Điều này sẽ thay đổi giá trị của biến toàn cục thành 55.

Chủ Đề