30/09/2018, 23:57

Lỗi trong python

khi in ra console hay file mà dùng hàm print thì nó bị thế này
<main.Student object at 0x0000000001ED2908>
làm sao để fix cái này vậy ạ?

Khoa NTA viết 02:09 ngày 01/10/2018

Đó không phải lỗi, đó là vì em in ra cái object (tên và địa chỉ object) chứ không phải nội dung trong object. Em nên làm thêm 1 method dùng để in dữ liệu, khi cần in dữ liệu thì gọi nó là xong.

Đoàn Việt Dũng viết 02:02 ngày 01/10/2018

thế làm sao để ghi 1 list object vào 1 file vậy ạ?

Khoa NTA viết 02:04 ngày 01/10/2018

Thì cứ truy xuất từng phần tử bằng…tay. Anh cũng không biết cái object đó tròn hay méo thì cũng khó nói lắm. Ví dụ như em có 1 list chứa các object: lstudent, các object có các phần tử s_name, s_id có thể truy xuất phần tử qua getname()getid() thì cứ dùng vòng lặp for:

# tham số truyền vào hàm là lstudent.
def export_studentobjlist(lst):
    current_position = 1
    for current_obj in lst:
        print "Student number:", current_position
        print "   |-- id  :  ", current_obj.getid()
        print "   `-- name:", current_obj.getname()
        print
        current_position += 1

Lưu ý là khi nhập thông tin vào thì nó phải là instance của object chứ k phải object đó.

htl@PyMI.vn viết 02:13 ngày 01/10/2018

Khi print 1 object mà muốn ra nội dung theo ý mình thì bạn định nghĩa method __str()__:

def __str__(self):
    return '%s' % self.attribute
Bài liên quan
0