【发布时间】:2020-12-25 07:02:04
【问题描述】:
所以在一个类里面我有一个函数,在那个函数里面我有一系列函数。但是当我创建对象时,我无法调用嵌套函数。user.searchBooks.AuthorBooks()(其中用户是对象的实例)不起作用。我不知道我是否做错了。有没有其他访问函数的方法
class User():
def __init__(self):
self.ID = None
self.Firstname = None
self.Surname = None
self.username = None
self.email = None
def searchBook(self):
'''Searching Books with given query'''
def AuthorBooks(self, aFirstname, aLastname, Type):
"""Query based on Author Searches - returns books with particular author """
if Type == 'All':
query = ("""
SELECT * FROM tblBooks;
SELECT * FROM tblAuthor;
SELECT cb.Name, cb.Genre, cb.Year_Published, ca.Firstname, ca.Surname
FROM tblBooks as cb
INNER JOIN tblAuthor ca on cb.AuthorID = ca.AuthorID
WHERE (UPPER(ca.Firstname)) = (UPPER(?)) or (UPPER(ca.Surname) = UPPER(?));""")
elif Type == 'Loaned Books':
query = ("""
SELECT tblBooks.Name, tblAuthor.Firstname, tblAuthor.Surname, tblBooks.BookID, tblLoans.Expiry_Date
FROM tblLoans
INNER JOIN (tblBooks INNER JOIN tblAuthor ON tblBooks.AuthorID = tblAuthor.AuthorID) ON tblBooks.BookID = tblLoans.BookID
WHERE ((UPPER(tblAuthor.Firstname) = UPPER(?)) or(UPPER(tblAuthor.Surname) = UPPER(?)) AND tblLoans.Date_of_Return IS NULL;
""")
cursor.execute(query, [(aFirstname), (aLastname)])
return cursor.fetchall()
【问题讨论】:
标签: python database function oop