Giúp đỡ về lỗi bound method

em đang làm bài tập với hàm class như sau:
Hãy thêm hàm vào class student để hiển thị thông tin cá nhân gồm tên, ngày sinh và nơi sinh của đối tượng sinh viên đó.
Em viết được như sau :slight_smile:

class Sinhvien:
     def __init__(self, id):
        self.id = id
       
     def nhapid(self):
        self.id = (input("Bạn hãy nhập id: "))
class Thongtinthem(Sinhvien):
     def ten(self, ten):
         self.ten = ten
     def nhapten(self):
         self.ten = (input("Bạn hãy nhập tên: "), self.ten)
     def ngaysinh(self, ngaysinh):
         self.ngaysinh = ngaysinh
     def nhapngaysinh(self):
         self.ngaysinh = (input("Bạn hãy nhập ngày sinh: "), self.ngaysinh)
     def noisinh(self, noisinh):
         self.noisinh = noisinh
     def nhapnoisinh(self):
         self.noisinh = (input("Bạn hãy nhập nơi sinh: "), self.noisinh)
     def showInfo(self):
         return self.ten, self.ngaysinh, self.noisinh



t = Thongtinthem(637854)
t.nhapten()
t.nhapngaysinh()
t.nhapnoisinh()
showinfo = t.showInfo()
print(showinfo)

Em chạy được phần nhập thông tin tên, ngày sinh, nơi sinh theo yêu cầu rồi. Nhưng em lại muốn khi nhập xong thì em muốn in ra các phần đã nhập luôn. Rồi bay ra lỗi bound method gì ấy ạ. Mọi người có thể cho em cách giải quyết lỗi này được không ạ. Em xin cảm ơn nhiều ạ

Lỗi ở chỗ này nè:
self.ten = (input("Bạn hãy nhập tên: "), self.ten)

Tôi sửa lại như sau:

class Sinhvien:
    def __init__(self, id):
        self.id = id
   
    def nhapid(self):
        self.id = (input("Bạn hãy nhập id: "))
class Thongtinthem(Sinhvien):
     def ten(self, ten):
         self.ten = ten
     def nhapten(self):
         self.ten = input("Bạn hãy nhập tên: ")
     def ngaysinh(self, ngaysinh):
         self.ngaysinh = ngaysinh
     def nhapngaysinh(self):
         self.ngaysinh = input("Bạn hãy nhập ngày sinh: ")
     def noisinh(self, noisinh):
         self.noisinh = noisinh
     def nhapnoisinh(self):
         self.noisinh = input("Bạn hãy nhập nơi sinh: ")
     def showInfo(self):
         return self.ten, self.ngaysinh, self.noisinh


if __name__ == '__main__':
	# main()
    t = Thongtinthem(637854)
    t.nhapten()
    t.nhapngaysinh()
    t.nhapnoisinh()
    showinfo = t.showInfo()
    print(showinfo)
3 Likes

cảm ơn bạn nhiều lắm :))), mình chạy được rồi, nhưng cho mình hỏi vì sao cái phần ấy sai vậy bạn. Có phải cứ sau input thì chỉ để đến đấy chứ không cần phải ghi thêm biến vào sau nữa à. Hay có trường hợp nào ngoại lệ không nhỉ

Hàm input trả về chuỗi đã nhập mà bạn :slight_smile: tham số chỉ là câu nhắc người dùng nhập vào thôi.

3 Likes

à ok bạn. Mình hiểu rồi, cảm ơn bạn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?