@ProgramistNoob
Начинающий программист

Почему не работает функция?

Доброго времени суток! Подскажите, пожалуйста, почему не работают функции в (как бы странно это не звучало) функции printall()? Скрипт прилагаю)
from sqlite3 import *
import sqlite3 as sql
from memory_profiler import memory_usage

class MyDB(object):
	def __init__(self):
		pass
		
	def join(self):
		with sql.connect('list.csv') as connection:
			cursor = connection.cursor()

	def search(self):
			name = input('Название книги: ')
			Autor = input('Автор книги: ')
			Genre = input('Жанр книги: ')
			#Year = int(input('Год издания: '))

			cursor.execute("SELECT * FROM list.csv WHERE `autor` LIKE '%Autor%' AND `genre` LIKE '%Genre%' AND `name` LIKE 'name' ") #AND `Year` LIKE 'Year'

	def add(self):
		name = input('Как называется книга?')
		writer = input('Кто написал ' + name + ':')
		style = input('Жанр книги: ')
		#release_year = int(input('В каком году написали книгу?: ')) 

	def delete(self):
		removal = input('Какую книгу вы хотите удалить? (Введите только название): ')
		cursor.execute("DELETE * FROM list.csv WHERE `name` LIKE '%removal%' ")

	def issuance(self):
		book = input('Какую книгу Вы хотите взять?:')
		cursor.execute("DELETE * FROM list.csv WHERE `name` LIKE '%book%' ")

	def printall(self):
		choise = int(input('1.Поиск \n2.Добавление книги \n3.Удаление книги \n4.Выдача книги \nВыберите действие (напишите только цифру варианта): '))

		if choise == '1':
			DB.search()

		elif choise == '2':
			DB.add()

		elif choise == '3':
			DB.delete()

		elif choise == '4':
			DB.issuance()

		'''else:
			choise = int(input('Выберите другое число: '))'''



storage = memory_usage()
print(storage)

DB = MyDB()

DB.printall()

input('\n\nНажмите Enter, чтобы выйти')
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что вы не имеете представления об областях видимости. Имени DB неоткуда взяться в пространстве имён метода printall. Используйте вместо него self.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы