Làm thế nào để bạn gọi một biến bên trong một hàm trong python?
Trong Python, chúng ta có thể khai báo các biến trong ba phạm vi khác nhau. phạm vi cục bộ, phạm vi toàn cầu và phi cục bộ Một phạm vi biến xác định khu vực mà chúng ta có thể truy cập vào một biến. Ví dụ,
Ở đây, biến sum được tạo bên trong hàm, vì vậy nó chỉ có thể được truy cập bên trong nó (phạm vi cục bộ). Loại biến này gọi là biến cục bộ Dựa trên phạm vi, chúng ta có thể phân loại các biến Python thành ba loại
Biến cục bộ PythonKhi chúng ta khai báo các biến bên trong hàm thì các biến này sẽ có phạm vi cục bộ (trong hàm). Chúng tôi không thể truy cập chúng bên ngoài chức năng Các loại biến này được gọi là biến cục bộ. Ví dụ,
đầu ra Local Hello NameError: name 'message' is not defined Ở đây, biến thông báo là cục bộ của hàm 7, vì vậy nó chỉ có thể được truy cập trong hàmĐó là lý do tại sao chúng tôi gặp lỗi khi cố gắng truy cập bên ngoài chức năng 7Để khắc phục sự cố này, chúng ta có thể biến biến có tên message thành toàn cầu Biến toàn cục PythonTrong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục. Điều này có nghĩa là một biến toàn cục có thể được truy cập bên trong hoặc bên ngoài hàm Hãy xem một ví dụ về cách một biến toàn cục được tạo trong Python
đầu ra Local Hello Global Hello Lần này chúng ta có thể truy cập biến thông báo từ bên ngoài hàm 7. Điều này là do chúng tôi đã tạo biến thông báo làm biến toàn cục
Bây giờ, tin nhắn sẽ có thể truy cập được từ bất kỳ phạm vi (khu vực) nào của chương trình Biến không cục bộ PythonTrong Python, các biến không cục bộ được sử dụng trong các hàm lồng nhau có phạm vi cục bộ không được xác định. Điều này có nghĩa là biến có thể không nằm trong phạm vi cục bộ cũng như phạm vi toàn cầu Chúng tôi sử dụng từ khóa 1 để tạo các biến không cục bộ. Ví dụ,
đầu ra ________số 8Trong ví dụ trên, có một hàm 2 lồng nhau. Chúng tôi đã sử dụng các từ khóa 1 để tạo một biến không cục bộ Trong Python, chúng ta có thể định nghĩa biến bên ngoài lớp, bên trong lớp và thậm chí bên trong các phương thức. Hãy xem, cách sử dụng và truy cập các biến này trong suốt chương trình Biến được định nghĩa bên ngoài lớp Các biến được định nghĩa bên ngoài lớp có thể được truy cập bởi bất kỳ lớp nào hoặc bất kỳ phương thức nào trong lớp chỉ bằng cách viết tên biến inner: nonlocal outer: nonlocal0 inner: nonlocal outer: nonlocal1 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal3 inner: nonlocal outer: nonlocal4 inner: nonlocal outer: nonlocal5 inner: nonlocal outer: nonlocal6 10 11 12 13inner: nonlocal outer: nonlocal2 15 16 17 18 10____111Local Hello NameError: name 'message' is not defined11 13inner: nonlocal outer: nonlocal2 18Local Hello NameError: name 'message' is not defined15 Local Hello NameError: name 'message' is not defined16____217 Local Hello NameError: name 'message' is not defined18 Local Hello NameError: name 'message' is not defined19 10 11inner: nonlocal outer: nonlocal02 13inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal05 inner: nonlocal outer: nonlocal06 inner: nonlocal outer: nonlocal5 inner: nonlocal outer: nonlocal08 inner: nonlocal outer: nonlocal09 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal11 16 inner: nonlocal outer: nonlocal13 18 10____111inner: nonlocal outer: nonlocal17 inner: nonlocal outer: nonlocal18 inner: nonlocal outer: nonlocal2 18Local Hello NameError: name 'message' is not defined15 inner: nonlocal outer: nonlocal22 Local Hello NameError: name 'message' is not defined17 Local Hello NameError: name 'message' is not defined18 Local Hello NameError: name 'message' is not defined19 10 11inner: nonlocal outer: nonlocal28 13inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal05 inner: nonlocal outer: nonlocal32 inner: nonlocal outer: nonlocal5 inner: nonlocal outer: nonlocal34 inner: nonlocal outer: nonlocal35 đầu ra. Local Hello Global Hello4 Các biến được định nghĩa bên trong lớp nhưng bên ngoài phương thức có thể được truy cập trong lớp (bao gồm tất cả các phương thức) bằng cách sử dụng thể hiện của lớp. Ví dụ – bản thân. var_name. inner: nonlocal outer: nonlocal0 inner: nonlocal outer: nonlocal37 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal39 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal41 16 17inner: nonlocal outer: nonlocal2 18inner: nonlocal outer: nonlocal46 18inner: nonlocal outer: nonlocal48 inner: nonlocal outer: nonlocal5 inner: nonlocal outer: nonlocal50 18 10____111inner: nonlocal outer: nonlocal54 inner: nonlocal outer: nonlocal55 inner: nonlocal outer: nonlocal2 18Local Hello NameError: name 'message' is not defined15 Local Hello NameError: name 'message' is not defined16____217 Local Hello NameError: name 'message' is not defined18 Local Hello NameError: name 'message' is not defined19 10 11inner: nonlocal outer: nonlocal65 inner: nonlocal outer: nonlocal66 Local Hello NameError: name 'message' is not defined17 inner: nonlocal outer: nonlocal68 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal06 inner: nonlocal outer: nonlocal5 inner: nonlocal outer: nonlocal08 inner: nonlocal outer: nonlocal09 inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal11 16 107 18 10____1110 111inner: nonlocal outer: nonlocal2 18Local Hello NameError: name 'message' is not defined15 inner: nonlocal outer: nonlocal22 Local Hello NameError: name 'message' is not defined17 Local Hello NameError: name 'message' is not defined18 Local Hello NameError: name 'message' is not defined19 10 110 121inner: nonlocal outer: nonlocal2 inner: nonlocal outer: nonlocal32 inner: nonlocal outer: nonlocal5 125inner: nonlocal outer: nonlocal35 đầu ra. 1Các câu lệnh được đánh dấu là lỗi sẽ tạo ra lỗi khi thực thi vì biến không thể truy cập được ở đó |