01/10/2018, 00:41
Thắc mắc về class trong Python
Như mọi người đã thấy trong đoạn code. E đã dùng cái classmethod return về 4 value chạy 4 cái arg vào class. Nhưng nó báo chỉ có 2. E vẫn chưa hiểu lắm về đoạn này. Không biết 2 đâu ra vì nếu nó không cho return value trả về gán vào biến như 2 dòng chú thích thì cũng chỉ có 1.
Mong mọi người giải đáp.
Bài liên quan
Vì split trả về một list object.
Nên khi truyền vô kia thì nó hiểu cái list ở đây như 1 tham số nên nó hũ lỗi.
Vậy có phải là list được tính là 2 args
Sửa thế này:
stud1 = Student(*Student.splitStr(sequence))
* ở đây là dấu unpack arguments, dùng trong lời gọi hàm (khác với dấu gộp arguments trong định nghĩa hàm) sẽ tách cái list mà
Student.splitStr
trả về ra thành từng argument riêng rẽ.Viết như bạn thì self + 1 cái list chỉ là 2 tham số truyền vào thôi.
stu1=Student.(*Student.splitStr(sequence))
Vâng, chạy được rồi ạ…e cám ơn :v
Lần sau nên nhét code vào markdown nhé, đừng chụp màn hình.
vâng vâng ^^ e sẽ lưu ý
anh nói kỹ về cái * được không ạ?
Khi nào thì nó là unpack Arguments, khi nào thì nó gộp các arguments lại thành tuple ạ?
VD:
Bạn có thể tham khảo thêm ở đây: http://hangar.runway7.net/python/packing-unpacking-arguments
Nhưng chỗ này vẫn chưa đầy đủ đâu, quyển Learning Python (5th Edition) nói đầy đủ và chi tiết hơn nhiều. Nhưng nó khá dày và nó ở đâu mình quên mất tiêu rồi. (dù sao, quyển này rất hay và đáng đọc).