Mình có đoạn code này:
Tại sao lúc print(lines)
sau khi gọi lines_type(lines)
lại in ra list rỗng?
Mình có đoạn code này:
Tại sao lúc print(lines)
sau khi gọi lines_type(lines)
lại in ra list rỗng?
Vì kế thừa từ class list
class lines_type(list):
Nên nó sẽ trả về một list
rỗng.
Nhưng những thuộc tính của anh vẫn sẽ được bảo toàn.
Nó giống như anh viết thêm một số thuộc tính cho một cái List object
thôi. Tuy vậy, Type của nó vẫn là class của anh.
Có cách nào để nó không trả về list rỗng không?
Ta có thể làm như thế này
class lines_type(list):
def __init__(self, lines):
list.__init__(self, lines[:])
Nó không in ra chuỗi rỗng nữa, nhưng không gọi được method .print_all_lines()
.
Em mới nghĩ ra cách
for u in self:
Nhưng mà có thể nó bóp mấy phần sau nên đang suy nghĩ thêm.
Theo em nghĩ, khi kế thừa từ List thì self nó đã là một List, không cần phải đưa cái list đó thành một attribute mới. Còn nếu muốn mới thì không kế thừa từ List.
OK, anh sẽ xem lại cả code xem có cần bỏ kế thừa từ List hay không. Cảm ơn em nha.
Có lẽ không bỏ kế thừa được rồi. Anh còn dùng cả indexing nữa. Nếu bỏ thì lỗi ngay.
Nếu vậy thì đừng dùng attribute để lưu một cái List.