Sự khác biệt giữa biến toàn cầu và không cục bộ trong python là gì? 2024

Xem Sự khác biệt giữa biến toàn cầu và không cục bộ trong python là gì? 2024

Phạm vi được định nghĩa là một khu vực có thể truy cập các biến đủ điều kiện. Để thực thi bảo mật, ngôn ngữ lập trình cung cấp phương tiện để người dùng có thể xác định rõ ràng các phạm vi này

Điều quan trọng là phải hiểu việc sử dụng phạm vi và cách xử lý chúng. Trong bài viết này, chúng ta sẽ xem các phạm vi có sẵn trong Python là gì và cách làm việc với chúng

1. Phạm vi toàn cầu¶

Bất kỳ biến nào được định nghĩa bên ngoài hàm không lồng nhau được gọi là biến toàn cục. Như tên cho thấy, các biến toàn cục có thể được truy cập ở bất cứ đâu

Ví dụ. ¶

side = 5 # defined in global scope

def area():
    return side * side

def circumference():
    return 4 * side

print(f"Area of square is {area()}")
print(f"Circumference of square is {circumference()}")

đầu ra

Area of square is 25
Circumference of square is 20

Khi một hàm cố gắng thao tác các biến toàn cục, lỗi UnboundLocalError sẽ xuất hiện. Để khắc phục điều này, biến toàn cục được xác định lại bên trong hàm bằng cách sử dụng từ khóa

Area of square is 25
Circumference of square is 20

2. Bằng cách này, người dùng có thể sửa đổi các biến toàn cục mà không gặp lỗi

Ví dụ. ¶

Không có từ khóa toàn cầu

side = 5

def multiply_side(factor):
  side *= factor

multiply_side(7)
print(f"Side length is {side}")

đầu ra

UnboundLocalError: local variable 'side' referenced before assignment

Với từ khóa toàn cầu

side = 5

def multiply_side(factor):
    global side
    side *= factor

multiply_side(7)
print(f"Side length is {side}")

đầu ra

Side length is 35

2. Phạm vi cục bộ¶

Theo mặc định, các biến được xác định bên trong một hàm có phạm vi cục bộ. Nó ngụ ý rằng các biến phạm vi cục bộ chỉ có thể được truy cập bên trong hàm cha và không nơi nào khác

Các biến cục bộ bị hủy ngay khi phạm vi không còn tồn tại

Ví dụ. ¶

side = 5

def area():
    square_area = side * side # local scope

print(square_area)

đầu ra

________số 8

3. Phạm vi phi cục bộ¶

Các hàm lồng nhau giới thiệu một loại phạm vi mới được gọi là phạm vi

Area of square is 25
Circumference of square is 20

3. Khi một hàm lồng nhau muốn chia sẻ phạm vi cục bộ của các hàm cha, từ khóa

Area of square is 25
Circumference of square is 20

3 được sử dụng

Trong trường hợp này gun() đã khởi tạo biến mới var1 trong phạm vi của gun. var1 với giá trị 10 và var1 với giá trị 20 là hai biến khác nhau và duy nhất. var1 giữ giá trị 20 sẽ được truy cập mặc định trong gun()

Xem xét ví dụ trước, chúng ta biết rằng các khẩu súng sẽ khởi tạo một biến mới var1 trong phạm vi của chính nó. Nhưng khi thực hiện thì nó chưa tìm được giá trị của var1, 
để thực hiện phép tính số học vì trước đó chưa gán giá trị cho var1 trong gun().

Python3

Side length is 35

0

Side length is 35

1

Side length is 35

2

Side length is 35

3

Area of square is 25
Circumference of square is 20

10

Area of square is 25
Circumference of square is 20

11

 

Side length is 35

2

Side length is 35

0

Area of square is 25
Circumference of square is 20

14

Area of square is 25
Circumference of square is 20

15

Side length is 35

08

Area of square is 25
Circumference of square is 20

15

Side length is 35

10

Area of square is 25
Circumference of square is 20

15

Side length is 35

12

Area of square is 25
Circumference of square is 20

15

Side length is 35

14

Area of square is 25
Circumference of square is 20

15

Side length is 35

16

Area of square is 25
Circumference of square is 20

15

Side length is 35

3

Area of square is 25
Circumference of square is 20

10

Side length is 35

3

Area of square is 25
Circumference of square is 20

12

Area of square is 25
Circumference of square is 20

11

Area of square is 25
Circumference of square is 20

15

Area of square is 25
Circumference of square is 20

16____117

 

Side length is 35

2

Area of square is 25
Circumference of square is 20

18

Area of square is 25
Circumference of square is 20

19

đầu ra.

Area of square is 25
Circumference of square is 20

1

 

Trong ví dụ này, trước khi khởi tạo var1 trong gun(). Chúng tôi đã nói rõ ràng với Python rằng, đừng khởi tạo một biến mới, thay vào đó hãy truy cập var1 đã có trên dòng 2. sử dụng từ khóa nonlocal Vì vậy, khi trình thông dịch thực hiện phép cộng, nó sẽ truy cập giá trị 10(đã có) và tránh được lỗi

Bây giờ chúng ta hãy chuyển sang từ khóa toàn cầu. Hãy xem xét các ví dụ được đưa ra dưới đây

Python3

Side length is 35

3

Area of square is 25
Circumference of square is 20

10

Area of square is 25
Circumference of square is 20

11

Side length is 35

0

Side length is 35

1

Side length is 35

2

Side length is 35

35

Side length is 35

36

Side length is 35

2

Area of square is 25
Circumference of square is 20

16____639

Area of square is 25
Circumference of square is 20

100

Area of square is 25
Circumference of square is 20

101

 

Area of square is 25
Circumference of square is 20

19

đầu ra.

side = 5

def multiply_side(factor):
  side *= factor

multiply_side(7)
print(f"Side length is {side}")

5

 

Biến toàn cục var1 sẽ được đọc hoặc truy cập đơn giản bên trong hàm fun()

Python3

Side length is 35

3

Area of square is 25
Circumference of square is 20

10

Area of square is 25
Circumference of square is 20

11

Side length is 35

0

Side length is 35

1

Side length is 35

2

Area of square is 25
Circumference of square is 20

109

Side length is 35

2____1111

Side length is 35

2

Side length is 35

3

Area of square is 25
Circumference of square is 20

10

UnboundLocalError: local variable 'side' referenced before assignment

14

Side length is 35

2

Area of square is 25
Circumference of square is 20

16____639

Area of square is 25
Circumference of square is 20

100

Area of square is 25
Circumference of square is 20

101

Side length is 35

2

Area of square is 25
Circumference of square is 20

16____639

Area of square is 25
Circumference of square is 20

124

Area of square is 25
Circumference of square is 20

125

UnboundLocalError: local variable 'side' referenced before assignment

18

UnboundLocalError: local variable 'side' referenced before assignment

19

 

Area of square is 25
Circumference of square is 20

19

_______116____639____1100

Area of square is 25
Circumference of square is 20

101

Area of square is 25
Circumference of square is 20

16______639____1124

Area of square is 25
Circumference of square is 20

125

UnboundLocalError: local variable 'side' referenced before assignment

18

UnboundLocalError: local variable 'side' referenced before assignment

19

đầu ra.

UnboundLocalError: local variable 'side' referenced before assignment

1

 

Một biến mới var1 sẽ được khởi tạo trong fun(). Biến toàn cục var1 sẽ khác với biến cục bộ var1 của fun(). Theo mặc định trong fun(), các biến cục bộ sẽ được truy cập

Sự khác biệt giữa biến toàn cục và biến cục bộ trong Python là gì?

Sự khác biệt giữa biến cục bộ và biến toàn cục là gì? . Global variables have the entire program as their scope, whereas local variables have only the function in which they are defined as their scope.

Biến cục bộ không cục bộ và cục bộ trong Python là gì?

Trong python, các biến không cục bộ đề cập đến tất cả các biến được khai báo trong các hàm lồng nhau . Phạm vi cục bộ của một biến không cục bộ không được xác định. Về cơ bản, điều này có nghĩa là biến không tồn tại trong phạm vi cục bộ cũng như trong phạm vi toàn cầu.

Sự khác biệt giữa các biến cục bộ và toàn cầu là gì?

Sự khác biệt chính giữa biến Toàn cầu và biến cục bộ là các biến toàn cục có thể được truy cập trên toàn cầu trong toàn bộ chương trình, trong khi các biến cục bộ chỉ có thể được truy cập trong hàm hoặc khối mà chúng được xác định.

Biến không cục bộ trong Python là gì?

Từ khóa nonlocal là được sử dụng để làm việc với các biến bên trong các hàm lồng nhau, trong đó biến không được thuộc về hàm bên trong . Sử dụng từ khóa nonlocal để khai báo rằng biến không cục bộ.

Bạn đang tìm hiểu bài viết Sự khác biệt giữa biến toàn cầu và không cục bộ trong python là gì? 2024


HỆ THỐNG CỬA HÀNG TRÙM SỈ QUẢNG CHÂU

Điện thoại: 092.484.9483

Zalo: 092.484.9483

Facebookhttps://facebook.com/giatlathuhuongcom/

WebsiteTrumsiquangchau.com

Địa chỉ: Ngõ 346 Nam Dư, Trần Phú, Hoàng Mai, Hà Nội.