Hướng dẫn use local variable outside function python - sử dụng biến cục bộ bên ngoài chức năng python
Biến toàn cầuTrong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cầu được gọi là biến toàn cầu. Điều này có nghĩa là một biến toàn cầu có thể được truy cập bên trong hoặc bên ngoài hàm. Show
Hãy xem một ví dụ về cách một biến toàn cầu được tạo ra trong Python. Ví dụ 1: Tạo một biến toàn cầu
Đầu ra x inside: global x outside: global Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?
Đầu ra UnboundLocalError: local variable 'x' referenced before assignment Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong x inside: global x outside: global9.Để thực hiện công việc này, chúng tôi sử dụng từ khóa 2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.Các biến cục bộ
Đầu ra NameError: name 'y' is not defined Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong x inside: global x outside: global9.Để thực hiện công việc này, chúng tôi sử dụng từ khóa 2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.
Đầu ra local Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong x inside: global x outside: global9. Để thực hiện công việc này, chúng tôi sử dụng từ khóa x = "global" def foo(): x = x * 2 print(x) foo()2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.
Đầu ra global global local Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong x inside: global x outside: global9.x inside: global x outside: global0 Đầu ra x inside: global x outside: global1 Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong x inside: global x outside: global9. Để thực hiện công việc này, chúng tôi sử dụng từ khóa x = "global" def foo(): x = x * 2 print(x) foo()2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.Các biến cục bộ Một biến được khai báo bên trong cơ thể của hàm hoặc trong phạm vi cục bộ được gọi là biến cục bộ. Ví dụ 2: Truy cập biến cục bộ bên ngoài phạm vi Đầu ra cho thấy một lỗi vì chúng tôi đang cố gắng truy cập một biến cục bộ y trong phạm vi toàn cầu trong khi biến cục bộ chỉ hoạt động bên trong x inside: global x outside: global9 hoặc phạm vi cục bộ.x inside: global x outside: global2 Đầu ra x inside: global x outside: global3 Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định x inside: global x outside: global9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi x inside: global x outside: global9 sẽ in giá trị của x. Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? : If we change the value of a nonlocal variable, the changes appear in the local variable. Nếu bạn muốn tránh 2, một cách tiếp cận có thể là xác định một lớp. Mỗi trường hợp lớp có các thuộc tính riêng của nó; Ngoài ra còn có một không gian thuộc tính lớp trong đó các trường hợp có thể chia sẻ một thuộc tính giữa chúng.Lập trình hướng đối tượng có thể là một thách thức để tham gia nếu bạn chưa quen với Python, nhưng đây thực sự có thể là thời điểm tốt để bắt đầu chơi với nó. x inside: global x outside: global4 Bây giờ, hãy tạo hai trường hợp. x inside: global x outside: global5 Các phương pháp 3 và 4 không hoàn toàn cần thiết trong các ví dụ đơn giản như thế này. Bạn cũng có thể làmx inside: global x outside: global6 . Nếu bạn thay đổi thuộc tính lớp thông qua một trường hợp, nó cũng sẽ không được thay đổi trong các trường hợp khác. x inside: global x outside: global7 Nhưng nếu bạn thay đổi nó trong bản thân lớp, nó sẽ được thay đổi trong tất cả các trường hợp không ghi đè riêng biệt giá trị được chia sẻ. x inside: global x outside: global8 Để tóm tắt lại, bạn tạo một thể hiện 5 mới bằng cách gọi 6; Điều này sẽ chạy phương thức 7 trước khi trả lại thể hiện mới. Bên trong lớp, phiên bản là đối số đầu tiên cho mọi phương pháp (không tĩnh, không lớp) và được gọi theo quy ước 8 (mặc dù bạn có thể thoát khỏi việc gọi nó là 9 nếu bạn muốn ).Có rất nhiều lớp học; Điểm bán hàng chính có lẽ là bạn có thể tạo các lớp con kế thừa từ lớp cha mẹ của chúng nhưng có thể ghi đè một số hành vi (ví dụ phổ biến thường liên quan đến các khái niệm trong thế giới thực như động vật hoặc phương tiện, nhưng một lớp học có thể là bất cứ điều gì bạn muốn tạo ra một loại và gói gọn hành vi của nó, và có lẽ ghi đè một số phương thức trong các loại dẫn xuất). |