Вы обрабатываете результаты БД следующим образом:
for each_result in results:
output.insert(0, each_result)
Я рекомендую переименовать переменную, чтобы отразить ваш запрос SQL:
for recipe in results:
output.insert(0, recipe)
С более конкретным, более значимым именем переменной мы Теперь можно увидеть ошибку. Вы на самом деле перебираете строки результатов из БД, а не перебираете отдельные рецепты. Поэтому добавьте запятую, чтобы исправить ваш синтаксис:
for recipe, in results:
output.insert(0, recipe)
Если, например, оператор SELECT также запрашивает время подготовки, вы бы использовали тот же синтаксис распаковки кортежей:
for recipe, prep_time in results:
output.insert(0, recipe)
[118 ] Когда вы видите, как извлекается несколько столбцов, «распаковка» может показаться вам более естественной.
Нет, ничто не работает таким образом вниз по дереву. Однако вам не нужно включать использование директив для перехода на вверх по дереву. Другими словами, если вы используете:
namespace Root.Orders
{
// Code
}
, то любые типы в Root
уже видны.
Нет, использование директивы
в C # не позволяет это:
Создайте директиву using для использования типов в пространстве имен без указания пространства имен. Директива using не дает вам доступа ни к каким пространствам имен, вложенным в указанное вами пространство имен. Однако
VB.NET поддерживает несколько более близкое поведение с оператором Imports
:
Область действия элементов, доступных в операторе Imports, зависит от того, насколько конкретно вы используете оператор Imports. Например, если указано только пространство имен, все члены с уникальным именем в этом пространстве имен и члены модулей в этом пространстве имен доступны без квалификации. Если указано и пространство имен, и имя элемента этого пространства имен,
Судя по тому, как вы сформулировали исходный вопрос, кажется, что вы можете или не можете понять это, просто используя:
using Root;
Как вы поясните свой код позже:
Account.Class obj = new Account.Class();
Orders.Class obj = new Orders.Class();
Вы не ДОЛЖНЫ использовать Root.Account для доступа к коду, и то же самое с Root.Orders. Кроме этого, нет способа автоматически рекурсивно использовать пространства имен. Я думаю, что это приведет к злоупотреблениям с использованием системы;
.NET / C # не поддерживает эту форму использования пространства имен.