Biến toàn cục và biến cục bộ trong ví dụ Python là gì?

Sự khác biệt giữa các biến cục bộ và biến toàn cầu thường gây nhầm lẫn cho các nhà phát triển mới. Nếu đúng như vậy thì hãy xem các ví dụ bên dưới để có ý tưởng rõ ràng về sự khác biệt chính giữa chúng

Tầm với của các biến

Một trong những khác biệt chính giữa hai loại biến là cái gọi là phạm vi tiếp cận của chúng. Phạm vi tiếp cận của một biến xác định nơi nó tồn tại

Bạn có thể nghĩ rằng tất cả các biến tồn tại ở mọi nơi trong mã, nhưng không phải vậy. Ví dụ: xem xét đoạn mã sau

Nếu bạn chạy mã này, bạn sẽ gặp lỗi nói rằng add_num không được xác định. Mặc dù bạn có thể thấy nó được định nghĩa trên dòng 2. Lý do là add_num là một biến cục bộ

Biến cục bộ

Các biến cục bộ chỉ tồn tại bên trong phần riêng của chúng. Phần của một biến có nghĩa là các khu vực trong mã của bạn mà biến đó có thể truy cập được. Đối với các biến cục bộ, nó phổ biến nhất là một hàm. Ở đây phần add_num là hàm number_addition

Điều đó có nghĩa là chúng ta chỉ có thể truy cập hàm add_num bằng mã nằm trong cùng một hàm. Vì vậy, chúng ta có thể đặt tên cho một số biến khác là add_num bên ngoài hàm number_addition

Đó là một trong những lợi thế lớn nhất của việc sử dụng các biến cục bộ. Nó đảm bảo rằng bạn có thể đặt tên cho các biến bên trong hàm của mình theo ý muốn và chúng sẽ không ghi đè bất kỳ biến nào bên ngoài hàm

Việc sử dụng các biến cục bộ cũng rất hiệu quả về bộ nhớ vì ngay sau khi chúng được sử dụng xong, chúng sẽ bị xóa

Đối lập với biến cục bộ là biến toàn cục

biến toàn cầu

Biến toàn cầu tồn tại ở khắp mọi nơi. Điều đó có nghĩa là bất kể bạn đang làm việc ở đâu trong mã, bạn đều có thể truy cập vào biến đó

Để một biến có tính toàn cầu, bạn cần khai báo nó bên ngoài tất cả các hàm. Một ngoại lệ cho điều này là việc sử dụng từ khóa toàn cầu

Hãy bao gồm một vài ví dụ với mã

Ở đây chúng tôi có mã giống như trên với một vài thay đổi

  • Bây giờ chúng tôi đã đặt tên chính xác cho biến bên trong bản in, điều đó có nghĩa là chúng tôi không gặp lỗi khi chạy biến này
  • Quan trọng hơn, chúng tôi đã loại bỏ tất cả các tham số khỏi hàm number_addition

Lúc đầu, bạn có thể nghĩ rằng mã này không hoạt động vì num_1 và num_2 không được xác định bên trong hàm. Nhưng, bạn đã nhầm, vì chạy mã này in ra 50

Lý do là cả num_1 và num_2 đều là các biến toàn cục được thiết lập bên ngoài bất kỳ hàm nào. Điều đó có nghĩa là bạn có thể truy cập chúng ở bất cứ đâu, ngay cả bên trong một số chức năng

Do đó, hàm number_addition có thể sử dụng num_1 và num_2 để tính tổng chúng lại với nhau

Từ khóa toàn cầu

Có thể đôi khi bạn muốn sử dụng một biến trong toàn bộ mã của mình, nhưng lần đầu tiên nó được thiết lập bên trong một hàm

Hầu hết các trường hợp bạn có thể tìm cách tạo biến trước rồi yêu cầu hàm sửa đổi nó, nhưng nếu không phải như vậy, bạn có thể sử dụng từ khóa toàn cầu

Hãy lấy mã đầu tiên của chúng tôi làm ví dụ

Sự khác biệt chính giữa mã này và mã đầu tiên là dòng 2. Ở đó chúng ta khai báo biến add_num là biến toàn cục. Điều đó có nghĩa là khi chúng tôi cố gắng in nó trên dòng 7, chúng tôi không nhận được bất kỳ lỗi nào

Các biến được tạo bên ngoài một hàm được gọi là Biến toàn cục. Biến toàn cục là biến có thể được truy cập ở mọi nơi. Điều này có nghĩa là, biến toàn cục có thể được truy cập bên trong hoặc bên ngoài hàm



Cách tạo Biến toàn cầu

đầu ra

Trong hầu hết các trường hợp khi bạn muốn sử dụng biến toàn cục, tốt hơn là sử dụng tham số để nhận giá trị vào hàm hoặc trả về giá trị để lấy giá trị ra. Giống như trong nhiều cấu trúc chương trình khác, Python cũng áp đặt thói quen lập trình tốt theo thiết kế

Biến toàn cục là biến có thể truy cập trong nhiều phạm vi. Trong Python, tốt hơn là sử dụng một mô-đun duy nhất để chứa tất cả các biến toàn cục mà bạn muốn sử dụng và bất cứ khi nào bạn muốn sử dụng chúng, chỉ cần nhập mô-đun này, sau đó bạn có thể sửa đổi mô-đun đó và nó sẽ hiển thị trong các mô-đun khác.

Tạo một mô-đun toàn cầu

Tạo tệp chương trình Python để truy cập biến toàn cục

Tạo một chương trình Python khác để kiểm tra giá trị có bị thay đổi hay không

Sử dụng biến toàn cục trong hàm

Một hàm toàn cầu có thể được truy cập bởi bất kỳ hàm nào, nhưng nó chỉ có thể được sửa đổi nếu bạn khai báo rõ ràng nó bằng từ khóa 'toàn cầu' bên trong hàm. Để sử dụng các biến toàn cục bên trong một hàm, bạn cần thực hiện lệnh global < varName > bên trong hàm. Hãy nhớ rằng bạn chỉ cần khai báo chúng toàn cầu bên trong hàm nếu bạn muốn thực hiện các bài tập/thay đổi chúng. toàn cầu không cần thiết để in và truy cập

thí dụ

đầu ra



Biến cục bộ

Các biến cục bộ chỉ có thể đạt được trong phạm vi của chúng. Đối với người yêu cũ. kiểm tra với hai biến cục bộ sau

thí dụ

đầu ra

Lỗi hiển thị do biến x chỉ có phạm vi cục bộ

TênLỗi. tên 'xx' không được xác định

Python biết mục đích của một số tên nhất định [ví dụ:. Chức năng tích hợp sẵn ]. Các tên khác được xác định trong chương trình [ví dụ:. biến]. Nếu Python gặp một tên mà nó không nhận ra, có thể bạn sẽ gặp lỗi NameError. tên toàn cầu 'xx' không được xác định lỗi. Trong hầu hết các trường hợp, lỗi này được kích hoạt khi Python nhìn thấy một tên biến [Toàn cầu hoặc Cục bộ] và không biết nó dùng để làm gì. Những lỗi này có thể xảy ra nếu bạn quên khởi tạo một biến, nếu bạn viết sai chính tả một biến hoặc nếu bạn viết sai một từ dành riêng, chẳng hạn như "True". Trước khi bạn sử dụng biến toàn cục trong hàm của mình để đọc, trước tiên nó phải được khởi tạo ở đâu đó. bên ngoài chức năng hoặc bên trong nó

Ngoài ra, nếu một biến có cùng tên cũng được xác định bên trong phạm vi của hàm thì nó sẽ chỉ in giá trị được cung cấp bên trong hàm chứ không phải giá trị toàn cầu

đầu ra

UnboundLocalError

Lỗi UnboundLocalError xuất hiện khi một biến cục bộ được tham chiếu trước khi nó được gán. Trong hầu hết các trường hợp, điều này sẽ xảy ra khi cố gắng sửa đổi một biến cục bộ trước khi nó thực sự được gán trong phạm vi cục bộ. Python không có khai báo biến, vì vậy nó phải tự tìm ra phạm vi của các biến. Nó làm như vậy bởi một quy tắc đơn giản. Nếu có một phép gán cho một biến bên trong một hàm, thì biến đó được coi là cục bộ

Python có phạm vi từ vựng theo mặc định, điều đó có nghĩa là mặc dù một phạm vi kèm theo có thể truy cập các giá trị trong phạm vi kèm theo của nó, nhưng nó không thể sửa đổi chúng [trừ khi chúng được khai báo toàn cầu với từ khóa toàn cầu]. Một bao đóng liên kết các giá trị trong môi trường kèm theo với các tên trong môi trường cục bộ. Sau đó, môi trường cục bộ có thể sử dụng giá trị liên kết và thậm chí gán lại tên đó cho một thứ khác, nhưng nó không thể sửa đổi liên kết trong môi trường kèm theo. UnboundLocalError xảy ra bởi vì khi python nhìn thấy một phép gán bên trong một hàm thì nó coi biến đó là biến cục bộ và sẽ không lấy giá trị của nó từ phạm vi bao quanh hoặc phạm vi toàn cục khi chúng ta thực thi hàm. Tuy nhiên, để sửa đổi một biến toàn cục bên trong một hàm, bạn phải sử dụng từ khóa toàn cầu

Các kiểu dữ liệu và biến trong Python

Mỗi biến trong Python được coi là một đối tượng. Các biến trong Python tuân theo danh pháp chuẩn của tên chữ và số bắt đầu bằng một chữ cái hoặc dấu gạch dưới. Dựa trên kiểu dữ liệu của một biến, trình thông dịch phân bổ bộ nhớ và quyết định những gì có thể được lưu trữ trong bộ nhớ dành riêng. Bạn không cần phải khai báo các biến trước khi sử dụng chúng, hoặc khai báo kiểu của chúng. Tên biến có phân biệt chữ hoa chữ thường. Hầu hết các biến trong Python đều có phạm vi cục bộ đối với hàm hoặc lớp của chính chúng

Thêm vào. Các kiểu dữ liệu và biến trong Python

Tìm kiếm một công việc Python?

Rất có thể bạn sẽ cần chứng minh rằng bạn biết cách làm việc với Python. Các câu hỏi phỏng vấn Python này được thiết kế đặc biệt để giúp bạn làm quen với bản chất của các câu hỏi mà bạn có thể gặp phải trong cuộc phỏng vấn về chủ đề Lập trình Python. Dưới đây là các câu hỏi Phỏng vấn Python mẫu mục tiêu hàng đầu và câu trả lời của chúng được cung cấp ngay bên dưới cho chúng. Những câu hỏi mẫu này được đóng khung bởi nhóm chuyên gia của chúng tôi, những người đào tạo về Python để cung cấp cho bạn ý tưởng về loại câu hỏi có thể được hỏi trong cuộc phỏng vấn

Biến toàn cục và biến cục bộ với ví dụ là gì?

Một biến toàn cục tồn tại trong chương trình trong suốt thời gian chương trình được thực thi. Một biến cục bộ được tạo khi hàm được thực thi và sau khi thực thi xong, biến đó sẽ bị hủy. Nó có thể được truy cập trong suốt chương trình bởi tất cả các chức năng có trong chương trình

Biến toàn cục trong ví dụ Python là gì?

Biến toàn cục trong Python thường được khai báo ở đầu chương trình. Nói cách khác, các biến được khai báo bên ngoài hàm được gọi là biến toàn cục. Bạn có thể truy cập các biến toàn cục trong Python cả bên trong và bên ngoài hàm. cú pháp. X = “sampleGlobalValue”

Biến cục bộ trong Python với ví dụ là gì?

Biến cục bộ . Hãy để chúng tôi lấy sự giúp đỡ của một ví dụ đơn giản để hiểu điều này. Trong trường hợp này, các biến cục bộ được khai báo là x và y . Chúng chỉ có thể đạt được trong phạm vi của hàm mà chúng được khai báo. e. Tổng[].

Một ví dụ về một biến toàn cầu là gì?

Bạn có thể nhận thấy rằng ở dòng 4, x và y được khai báo là hai trong số các biến toàn cục kiểu int. Ở đây, biến x sẽ tự động được khởi tạo thành 0. Sau đó, người ta có thể sử dụng các biến như x và y bên trong bất kỳ hàm nào đã cho.

Chủ Đề