- Một hằng số cần thiết trong nhiều hàm có thể được khai báo là hằng số toàn cục bằng cách khai báo nó là hằng số bằng cách sử dụng từ dự trữ const, khởi tạo nó và đặt nó bên ngoài phần thân của tất cả các hàm, bao gồm cả hàm chính
- Theo thông lệ tiêu chuẩn, các khai báo hằng số toàn cầu được đặt sau các chỉ thị tiền xử lý và trước các nguyên mẫu hàm
- Giá trị của hằng số toàn cục có thể được truy cập bởi tất cả các hàm
- Có thể khai báo các biến toàn cục mà tất cả các hàm đều có thể truy cập được
- Biến toàn cục được khai báo giống như bất kỳ biến thông thường nào, ngoại trừ việc khai báo phải được đặt bên ngoài phần thân của tất cả các hàm, tốt nhất là sau các chỉ thị tiền xử lý và trước các nguyên mẫu hàm
- Tuy nhiên, hiếm khi có nhu cầu sử dụng các biến toàn cục. Các biến toàn cục thường làm cho chương trình khó đọc và khó sửa lỗi và thường là dấu hiệu của thiết kế chương trình rất tệ. Bạn không nên sử dụng chúng mà không có sự đồng ý bằng văn bản của cha mẹ hoặc người giám hộ của bạn
Biến toàn cục là những biến không được xác định bên trong bất kỳ hàm nào và có phạm vi toàn cục trong khi biến cục bộ là những biến được định nghĩa bên trong hàm và phạm vi của nó chỉ giới hạn ở hàm đó. Nói cách khác, chúng ta có thể nói rằng các biến cục bộ chỉ có thể truy cập được bên trong hàm mà nó được khởi tạo trong khi các biến toàn cục có thể truy cập được trong toàn bộ chương trình và bên trong mọi hàm. Biến cục bộ là những biến được khởi tạo bên trong một hàm và chỉ thuộc về hàm cụ thể đó. Nó không thể được truy cập ở bất cứ đâu bên ngoài chức năng. Hãy xem cách tạo một biến cục bộ
Thí dụ. Tạo biến cục bộ
Python3
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined9
NameError: name 's' is not defined0
NameError: name 's' is not defined1
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
NameError: name 's' is not defined0
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined9
NameError: name 's' is not defined9
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks1
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
Đầu ra
NameError: name 's' is not defined1
Nếu chúng ta cố gắng sử dụng biến cục bộ này bên ngoài hàm thì hãy xem điều gì sẽ xảy ra
Thí dụ
Python3
NameError: name 's' is not defined7
NameError: name 's' is not defined8
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks5
NameError: name 's' is not defined0
NameError: name 's' is not defined1
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
NameError: name 's' is not defined0
NameError: name 's' is not defined7____214
NameError: name 's' is not defined15
NameError: name 's' is not defined16
NameError: name 's' is not defined9
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks1
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7
NameError: name 's' is not defined8
đầu ra
NameError: name 's' is not defined
Biến toàn cầu
Đây là những cái được định nghĩa bên ngoài bất kỳ chức năng nào và có thể truy cập được trong suốt chương trình, tôi. e. , bên trong và bên ngoài mọi chức năng. Hãy xem cách tạo biến toàn cục
Thí dụ. Định nghĩa và truy cập các biến toàn cục
Python3
NameError: name 's' is not defined92
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined0
NameError: name 's' is not defined7____214
NameError: name 's' is not defined98
NameError: name 's' is not defined16
NameError: name 's' is not defined9
NameError: name 's' is not defined51
NameError: name 's' is not defined3____04
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7____214
NameError: name 's' is not defined58
NameError: name 's' is not defined16
Đầu ra
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks
Biến s được định nghĩa là biến toàn cục và được sử dụng cả bên trong hàm cũng như bên ngoài hàm
Ghi chú. Vì không có biến cục bộ nên giá trị từ biến toàn cầu sẽ được sử dụng nhưng hãy đảm bảo rằng cả biến cục bộ và biến toàn cục phải có cùng tên
Bây giờ, điều gì sẽ xảy ra nếu có một biến cùng tên được khởi tạo bên trong một hàm cũng như trên toàn cầu. Bây giờ câu hỏi đặt ra, liệu biến cục bộ có ảnh hưởng gì đến biến toàn cục hay ngược lại, và điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của một biến bên trong hàm f[]? .
Python3
NameError: name 's' is not defined50
NameError: name 's' is not defined51
NameError: name 's' is not defined9
NameError: name 's' is not defined9
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined59
NameError: name 's' is not defined0
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined9
NameError: name 's' is not defined9
NameError: name 's' is not defined51
NameError: name 's' is not defined3____04
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7
NameError: name 's' is not defined8
Đầu ra
NameError: name 's' is not defined1
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.
Câu hỏi đặt ra là, nếu chúng ta cố gắng thay đổi giá trị của một biến toàn cục bên trong hàm thì sao?. Hãy xem nó bằng ví dụ dưới đây
Thí dụ.
Python3
NameError: name 's' is not defined92
NameError: name 's' is not defined7
NameError: name 's' is not defined8
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined87
NameError: name 's' is not defined4
NameError: name 's' is not defined89
NameError: name 's' is not defined0
NameError: name 's' is not defined7____214
NameError: name 's' is not defined98
NameError: name 's' is not defined16
NameError: name 's' is not defined9
NameError: name 's' is not defined9
NameError: name 's' is not defined51
NameError: name 's' is not defined3____04
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
đầu ra
NameError: name 's' is not defined9
Để làm cho chương trình trên hoạt động, chúng ta cần sử dụng từ khóa “global”. Hãy xem từ khóa toàn cầu này là gì
từ khóa toàn cầu
Chúng ta chỉ cần sử dụng từ khóa global trong một hàm nếu chúng ta muốn thực hiện các bài tập hoặc thay đổi biến toàn cục. toàn cầu không cần thiết để in và truy cập. Python “giả sử” rằng chúng ta muốn có một biến cục bộ do việc gán cho s bên trong hàm f[], vì vậy câu lệnh đầu tiên đưa ra thông báo lỗi. Bất kỳ biến nào được thay đổi hoặc tạo bên trong hàm đều là biến cục bộ nếu nó chưa được khai báo là biến toàn cục. Để nói với Python rằng chúng ta muốn sử dụng biến toàn cục, chúng ta phải sử dụng từ khóa “global”, như có thể thấy trong ví dụ sau.