Hướng dẫn what is the default scope of variable in python? - phạm vi mặc định của biến trong python là gì?
Trong Python, các biến là các thùng chứa để lưu trữ các giá trị dữ liệu. Chúng là tham chiếu, hoặc con trỏ, đến một đối tượng trong bộ nhớ, điều đó có nghĩa là bất cứ khi nào một biến được gán cho một thể hiện, nó sẽ được ánh xạ tới trường hợp đó. Không giống như các ngôn ngữ khác như C/C ++/Java, Python không phải là người đánh máy tĩnh. Chúng tôi 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 loại của chúng. Một biến được tạo ngay khi chúng ta chỉ định giá một giá trị cho nó.example: & nbsp; & nbsp; Show Python3
I love Geeksforgeeks0 = ________ 12 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;I love Geeksforgeeks3 = ________ 15 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;I love Geeksforgeeks6 I love Geeksforgeeks7 I love Geeksforgeeks6 I love Geeksforgeeks9 I love Geeksforgeeks6 Me too. I love Geeksforgeeks1 Đầu ra: & nbsp; & nbsp; 45 1456.8 John Lưu ý: Để biết thêm về các biến bấm vào đây. & NBSP; To know more about variables click here. Phạm vi của biếnVị trí nơi chúng ta có thể tìm thấy một biến và cũng truy cập nó nếu được yêu cầu được gọi là phạm vi của một biến. & NBSP;scope of a variable. Các biến toàn cầu và địa phươngCác biến toàn cầu là các biến được xác định và khai báo bên ngoài bất kỳ chức năng nào và không được chỉ định cho bất kỳ chức năng nào. Chúng có thể được sử dụng bởi bất kỳ phần nào của chương trình.example: & nbsp; & nbsp; Python3Me too. I love Geeksforgeeks2 Me too. I love Geeksforgeeks3 Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Me too. I love Geeksforgeeks7 = Me too. I love Geeksforgeeks9 Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment0 Output: I love Geeksforgeeks Bây giờ giả sử một biến có cùng tên được xác định bên trong phạm vi hàm cũng như nó sẽ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP; Python3Me too. I love Geeksforgeeks2 Me too. I love Geeksforgeeks3 Me too. I love Geeksforgeeks7 = Me too. I love Geeksforgeeks9 Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Me too. I love Geeksforgeeks7 = Me too. I love Geeksforgeeks9 Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment0 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Output: Me too. I love Geeksforgeeks Bây giờ giả sử một biến có cùng tên được xác định bên trong phạm vi hàm cũng như nó sẽ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP; Python3Me too. I love Geeksforgeeks2 Me too. I love Geeksforgeeks3 Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Me too. I love Geeksforgeeks7 = Me too. I love Geeksforgeeks9 Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Me too. I love Geeksforgeeks7 = Me too. I love Geeksforgeeks9 Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment0 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Output: Me too. I love Geeksforgeeks4 Me too. I love Geeksforgeeks7 = Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment6global keyword. We only need to use global keyword in a function if we want to do assignments / change them. global is not needed for printing and accessing. Why? Python “assumes” that we want a local variable due to the assignment to s inside of f(), so the first print statement throws this error message. Any variable which is changed or created inside of a function is local, if it hasn’t been declared as a global variable. To tell Python, that we want to use the global variable, we have to use the keyword global, as can be seen in the following example: Python3Biến S được định nghĩa là chuỗi mà tôi yêu thích GeekSforGeeks, trước khi chúng ta gọi hàm f (). Câu lệnh duy nhất trong f () là câu lệnh in (s). Vì không có S cục bộ, giá trị từ toàn cầu sẽ được sử dụng. Câu hỏi là, điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của S bên trong hàm f ()? Nó sẽ ảnh hưởng đến toàn cầu? Chúng tôi kiểm tra nó trong phần mã sau: & nbsp; Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu. Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một chức năng nếu chúng ta muốn thực hiện các bài tập / thay đổi chúng. Toàn cầu là không cần thiết để in và truy cập. Tại sao? Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f (), vì vậy câu lệnh in đầu tiên ném thông báo lỗi này. Bất kỳ biến nào được thay đổi hoặc tạo bên trong một hàm là cục bộ, nếu nó đã được tuyên bố là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa toàn cầu, như có thể thấy trong ví dụ sau: & nbsp; Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Me too. I love Geeksforgeeks2 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 55 Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment0 I love Geeksforgeeks6 Me too. I love Geeksforgeeks6 Output: Python is great! Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section Me too. I love Geeksforgeeks4 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 58 Python3Me too. I love Geeksforgeeks4 Me too. I love Geeksforgeeks7 = age 5Biến S được định nghĩa là chuỗi mà tôi yêu thích GeekSforGeeks, trước khi chúng ta gọi hàm f (). Câu lệnh duy nhất trong f () là câu lệnh in (s). Vì không có S cục bộ, giá trị từ toàn cầu sẽ được sử dụng. Câu hỏi là, điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của S bên trong hàm f ()? Nó sẽ ảnh hưởng đến toàn cầu? Chúng tôi kiểm tra nó trong phần mã sau: & nbsp; Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 45 245 345 4Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu. Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một chức năng nếu chúng ta muốn thực hiện các bài tập / thay đổi chúng. Toàn cầu là không cần thiết để in và truy cập. Tại sao? Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f (), vì vậy câu lệnh in đầu tiên ném thông báo lỗi này. Bất kỳ biến nào được thay đổi hoặc tạo bên trong một hàm là cục bộ, nếu nó đã được tuyên bố là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa toàn cầu, như có thể thấy trong ví dụ sau: & nbsp; Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 45 2I love Geeksforgeeks04 45 4Me too. I love Geeksforgeeks2 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 55 Me too. I love Geeksforgeeks4 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 58 Me too. I love Geeksforgeeks4 Me too. I love Geeksforgeeks7 = age 5Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 45 2I love Geeksforgeeks18 45 4Me too. I love Geeksforgeeks7 = = 1Traceback (most recent call last): File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f() File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print(s) UnboundLocalError: local variable 's' referenced before assignment0 I love Geeksforgeeks6 45 2I love Geeksforgeeks22 45 4I love Geeksforgeeks29 I love Geeksforgeeks6 45 2I love Geeksforgeeks22 45 4I love Geeksforgeeks34 I love Geeksforgeeks6 45 2I love Geeksforgeeks22 45 4Output: global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3 Hãy xem xét ví dụ dưới đây để hiểu rõ hơn về chủ đề. & Nbsp; & nbsp;
Python3Me too. I love Geeksforgeeks2 45 6Me too. I love Geeksforgeeks4 = 5= I love Geeksforgeeks00 Me too. I love Geeksforgeeks2 I love Geeksforgeeks07 Me too. I love Geeksforgeeks4 Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57 I love Geeksforgeeks10 I love Geeksforgeeks54 I love Geeksforgeeks55 Me too. I love Geeksforgeeks4 = 5= I love Geeksforgeeks14 Me too. I love Geeksforgeeks4 I love Geeksforgeeks61 I love Geeksforgeeks6 45 2I love Geeksforgeeks2222 I love Geeksforgeeks65 I love Geeksforgeeks6 45 2I love Geeksforgeeks68 I love Geeksforgeeks42 = I love Geeksforgeeks44 Me too. I love Geeksforgeeks2 I love Geeksforgeeks46 Me too. I love Geeksforgeeks4 = 5= I love Geeksforgeeks50 Me too. I love Geeksforgeeks4 Me too. I love Geeksforgeeks2 I love Geeksforgeeks53 I love Geeksforgeeks54 = 55____8 I love Geeksforgeeks59 Me too. I love Geeksforgeeks4 I love Geeksforgeeks61 Me too. I love Geeksforgeeks4 I love Geeksforgeeks6 I love Geeksforgeeks64 I love Geeksforgeeks65 Output: Value of a using nonlocal is : 10 Value of a without using nonlocal is : 5 Phạm vi mặc định của một biến là gì?Theo mặc định, một biến có quyền truy cập mặc định. Công cụ sửa đổi quyền truy cập mặc định có nghĩa là chúng tôi không khai báo rõ ràng Trình sửa đổi truy cập cho một lớp, trường, phương thức, v.v. Một biến hoặc phương thức được khai báo mà không có bất kỳ công cụ sửa đổi kiểm soát truy cập nào có sẵn cho bất kỳ lớp nào khác trong cùng một gói.default access. Default access modifier means we do not explicitly declare an access modifier for a class, field, method, etc. A variable or method declared without any access control modifier is available to any other class in the same package.
Phạm vi khác nhau của một biến trong Python là gì?Không phải tất cả các biến có thể được truy cập từ bất cứ nơi nào trong một chương trình.Phần của một chương trình trong đó một biến có thể truy cập được gọi là phạm vi của nó.Có bốn loại phạm vi chính và là cơ sở cho quy tắc LegB.LegB là viết tắt của địa phương -> Bao quanh -> Toàn cầu -> tích hợp.four major types of variable scope and is the basis for the LEGB rule. LEGB stands for Local -> Enclosing -> Global -> Built-in.
Phạm vi của Python là gì?Trong Python, khái niệm về phạm vi có liên quan chặt chẽ đến khái niệm về không gian tên.Như bạn đã học được cho đến nay, một phạm vi Python xác định vị trí trong chương trình của bạn có thể nhìn thấy tên của bạn.Phạm vi Python được triển khai dưới dạng từ điển ánh xạ tên cho các đối tượng.Những từ điển này thường được gọi là không gian tên.determines where in your program a name is visible. Python scopes are implemented as dictionaries that map names to objects. These dictionaries are commonly called namespaces.
Phạm vi của một biến được xác định trong python chính () là gì?Vì var được khai báo bên trong một hàm, trong trường hợp này là Main (), var chỉ tồn tại bên trong phạm vi cục bộ của main ().local scope. |