Page 108 - Em Học Python
P. 108

BIẾN VÀ PHẠM VI


                       Một biến nằm bên trong hàm sẽ chỉ tồn tại bên trong hàm, hàm chạy xong là xong,
               và sẽ không sử dụng được ở bên ngoài hàm. Trong thế giới lập trình cái này được gọi là

               phạm vi  ⟨scope⟩.
                                ​

                       Thử xem xét hàm sau, không có tham số nhưng bên trong có sử dụng vài biến:


                         ​
                    ​
               >>> def variable_test():
                                         ​
                   ​
                        ​
                       first_variable = 10
                       second_variable = 20
                         ​
                       return first_variable * second_variable
                                ​
                       Trong ví dụ này, ta tạo ra hàm  variable_test ở ❶, trong đó nó nhân hai số
                                                                     ​
               first_variable và second_variable vào với nhau rồi trả ra kết quả ở ❷.
                                    ​
                                                      ​
                                ​
               >>> print(variable_test())
                          ​
                    ​
                   ​
               200
                       Nếu gọi hàm này bằng  print, ta sẽ nhận được kết quả là 200. Nhưng nếu thử mở
                                                    ​
               biến  first_variable (hoặc  second_variable cũng được) bên ngoài khối lệnh của hàm
                                                              ​
                                     ​
               trên, ta sẽ gặp lỗi ngay:
                   ​
                          ​
                    ​
               >>> print(first_variable)
               Traceback (most recent call last):
                 File "<pyshell#50>", line 1, in <module>
                   print(first_variable)
               NameError: name 'first_variable' is not defined

                       Nếu một biến được tạo ra bên ngoài hàm, phạm vi của nó sẽ khác. Ví dụ thử tạo một

               biến trước khi tạo hàm rồi dùng nó bên trong hàm xem:


                   ​
               >>> another_variable = 100
                                          ​
                    ​
                   ​
               >>> def variable_test2():
                         ​
                        ​
                       first_variable = 10
                       second_variable = 20
                       return first_variable * second_variable * another_variable
                                ​
                         ​




               82          Chương 7
                  ​
   103   104   105   106   107   108   109   110   111   112   113