Page 72 - Python Simple
P. 72
9. Lớp http://www.vithon.org/tutorial/2.5/node11.html
9.3.2 Đối tượng lớp
Các đối tượng lớp hỗ trợ hai loại tác vụ: tham chiếu thuộc tính và tạo trường hợp
(instantiation).
Tham chiếu thuộc tính dùng cú pháp chuẩn được dùng cho mọi tham chiếu thuộc tính
trong Python: obj.name. Các tên thuộc tính hợp lệ gồm mọi tên trong vùng tên của
lớp khi đối tượng lớp được tạo ra. Do đó, nếu định nghĩa lớp có dạng như sau:
class MyClass:
"A simple example class"
i = 12345
def f(self):
return 'hello world'
thì MyClass.i và MyClass.f là những tham chiếu thuộc tính hợp lệ, trả về một số
nguyên và một đối tượng hàm, theo thứ tự đó. Các thuộc tính lớp cũng có thể gán vào,
cho nên bạn có thể thay đổi giá trị của MyClass.i bằng phép gán. __doc__ cũng là
một thuộc tính hợp lệ, trả về chuỗi tài liệu của lớp: "A simple example class".
Class instantiation (tạo trường hợp lớp) dùng cùng cách viết như gọi hàm. Hãy tưởng
tượng một đối tượng lớp là một hàm không thông số trả về một trường hợp của lớp. Ví
dụ (với lớp trên):
x = MyClass()
tạo một trường hợp mới của lớp và gán đối tượng này vào biến nội bộ x.
Tác vụ tạo trường hợp (``gọi'' một đối tượng lớp) tạo một đối tượng rỗng. Nhiều lớp
thích tạo đối tượng với các trường hợp được khởi tạo ở một trạng thái đầu nào đó. Do
đó một lớp có thể định nghĩa một phương thức đặc biệt tên __init__(), như sau:
def __init__(self):
self.data = []
Khi một lớp định nghĩa một phương thức __init__() , việc tạo trường hợp lớp sẽ tự
động gọi __init__() ở trường hợp lớp mới vừa được tạo. Trong ví dụ nạy, một trường
hợp đã khởi tạo mới có thể được tại ra từ:
x = MyClass()
Dĩ nhiên, __init__() (phương thức) có thể nhận thêm thông số. Trong trường hợp đó,
các thông số đưa vào phép tạo trường hợp lớp sẽ được truyền vào __init__(). Ví dụ,
>>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
9.3.3 Đối tượng trường hợp
4 of 13 08/31/2011 10:27 AM