在类中如何调用函数内的函数

huangapple go评论151阅读模式
英文:

How to call function inside function in class

问题

  1. # def deletebooksfromdisplay(self,bookname):
  2. # self.books.remove(bookname)

你需要编写一个名为deletebooksfromdisplay的方法来删除书籍。这个方法将接受一个书名作为参数,并从self.books列表中删除该书名。这将使图书从库存中被移除。

然后,在borrowbooks方法中,在书被借出后,你可以调用deletebooksfromdisplay方法,以确保已借出的书不再在图书库中显示。这将防止同一本书被借出两次。

英文:
  • I have 2 class Library, Student
  • If book is in displaybooks function then book is issued
  • if book book is already issued then it has to print print(bookname + "NA/already taken")

Below is the code

  1. class Library:
  2. def __init__(self, listBooks):
  3. self.books = listBooks
  4. def displaybooks(self):
  5. for book in self.books:
  6. print(book)
  7. def borrowbooks(self, bookname):
  8. if bookname not in self.books:
  9. print(bookname + "NA/already taken")
  10. else:
  11. print(bookname + " is issued for you")
  12. # def deletebooksfromdisplay(self,bookname):
  13. # self.books.remove(bookname)
  14. class Student:
  15. def requestbooks(self):
  16. self.book = input("Enter name of the book you want to borrow: ")
  17. return self.book
  18. if __name__ == "__main__":
  19. mylib = Library(
  20. ["invention", "rich&poor", "macroeconomics", "secret"])
  21. student = Student()
  22. print("""CHOOSE WHAT YOU WANT TO DO:-\n1. Listing all books\n2. Borrow books \n3.
  23. Exit\n""")
  24. while (True):
  25. try:
  26. usr_response = int(input("Enter your choice: "))
  27. if usr_response == 1:
  28. mylib.displaybooks()
  29. elif usr_response == 2:
  30. mylib.borrowbooks(student.requestbooks())
  31. elif usr_response == 3:
  32. print("THANK YOU ! \n")
  33. exit()
  34. break
  35. else:
  36. print("INVAILD INPUT! \n")
  37. except Exception as e: #catch errors
  38. print(f"{e}---> INVALID INPUT! \n")

My output is below

  1. CHOOSE WHAT YOU WANT TO DO:-
  2. 1. Listing all books
  3. 2. Borrow books
  4. 3.
  5. Exit
  6. Enter your choice: 1
  7. invention
  8. rich&poor
  9. macroeconomics
  10. secret
  11. Enter your choice: 2
  12. Enter name of the book you want to borrow: secret
  13. secret is issued
  14. Enter your choice: 2
  15. Enter name of the book you want to borrow: secret
  16. secret is issued

You can see secret is issued 2 times Expected out is on second time it is print(bookname + "NA/already taken")

  • Basically I need to write one function like below which has to delete from lisfofbooks
  1. # def deletebooksfromdisplay(self,bookname):
  2. # self.books.remove(bookname)

答案1

得分: 0

你可以在借阅后将书移除:

  1. def borrowbooks(self, bookname):
  2. if bookname not in self.books:
  3. print(bookname + "NA/already taken")
  4. else:
  5. print(bookname + " 已借阅给你")
  6. self.books.remove(bookname)
英文:

You can just remove the book after borrowing it:

  1. def borrowbooks(self, bookname):
  2. if bookname not in self.books:
  3. print(bookname + "NA/already taken")
  4. else:
  5. print(bookname + " is issued for you")
  6. self.books.remove(bookname)

huangapple
  • 本文由 发表于 2023年3月9日 22:25:17
  • 转载请务必保留本文链接:https://go.coder-hub.com/75685891.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定