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