Page 78 - Python Simple
P. 78

9. Lớp                                                          http://www.vithon.org/tutorial/2.5/node11.html



                 raise Class, instance

                 raise instance

             Trong dạng đầu, instance phải là một trường hợp của kiểu Class hoặc là lớp con của
             nó. Dạng thứ hai là rút gọn của:

                 raise instance.__class__, instance

             Lớp trong vế except tương thích với một biệt lệ nếu nó cùng lớp, hoặc là một lớp cơ sở
             (nhưng chiều ngược lại thì không đúng -- một vế except dùng lớp con sẽ không tương
             thích với một biệt lệ lớp cơ sở). Ví dụ, đoạn mã sau sẽ in B, C, D theo thứ tự đó:

                 class B:
                     pass
                 class C(B):
                     pass
                 class D(C):
                     pass

                 for c in [B, C, D]:
                     try:
                         raise c()
                     except D:
                         print "D"
                     except C:
                         print "C"
                     except B:
                         print "B"

             Nếu các vế except được đặt ngược (với "except B" ở đầu), nó sẽ in B, B, B -- vế except
             phù hợp đầu tiên được thực thi.

             Khi một thông điệp lỗi được in, tên lớp của biệt lệ được in, theo sau bởi dấu hai chấm
             và một khoảng trắng, và cuối cùng là trường hợp đã được chuyển thành chuỗi bằng
             hàm có sẵn str().

             9.9 Bộ lặp


             Bây giờ có lẽ bạn đã lưu ý rằng hầu hết các đối tượng chứa (container object) có thể
             được lặp qua bằng câu lệnh for :

                 for element in [1, 2, 3]:
                     print element
                 for element in (1, 2, 3):
                     print element
                 for key in {'one':1, 'two':2}:
                     print key
                 for char in "123":
                     print char
                 for line in open("myfile.txt"):
                     print line

             Kiểu truy xuất này rõ ràng, xúc tích, và tiện lợi. Bộ lặp (iterator) được dùng khắp nơi




     10 of 13                                                                                 08/31/2011 10:27 AM
   73   74   75   76   77   78   79   80   81   82   83