Пространство имен и пространства имен Sub

Вы обрабатываете результаты БД следующим образом:

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 ] Когда вы видите, как извлекается несколько столбцов, «распаковка» может показаться вам более естественной.

18
задан Daniel A. White 27 July 2009 в 13:03
поделиться

5 ответов

Нет, ничто не работает таким образом вниз по дереву. Однако вам не нужно включать использование директив для перехода на вверх по дереву. Другими словами, если вы используете:

namespace Root.Orders
{
    // Code
}

, то любые типы в Root уже видны.

26
ответ дан 30 November 2019 в 07:18
поделиться

Нет, использование директивы в C # не позволяет это:

Создайте директиву using для использования типов в пространстве имен без указания пространства имен. Директива using не дает вам доступа ни к каким пространствам имен, вложенным в указанное вами пространство имен. Однако

VB.NET поддерживает несколько более близкое поведение с оператором Imports :

Область действия элементов, доступных в операторе Imports, зависит от того, насколько конкретно вы используете оператор Imports. Например, если указано только пространство имен, все члены с уникальным именем в этом пространстве имен и члены модулей в этом пространстве имен доступны без квалификации. Если указано и пространство имен, и имя элемента этого пространства имен,

9
ответ дан 30 November 2019 в 07:18
поделиться

Судя по тому, как вы сформулировали исходный вопрос, кажется, что вы можете или не можете понять это, просто используя:

using Root;

Как вы поясните свой код позже:

Account.Class obj = new Account.Class();
Orders.Class obj = new Orders.Class();

Вы не ДОЛЖНЫ использовать Root.Account для доступа к коду, и то же самое с Root.Orders. Кроме этого, нет способа автоматически рекурсивно использовать пространства имен. Я думаю, что это приведет к злоупотреблениям с использованием системы;

2
ответ дан 30 November 2019 в 07:18
поделиться

.NET / C # не поддерживает эту форму использования пространства имен.

1
ответ дан 30 November 2019 в 07:18
поделиться

Нет, не совсем. =)

1
ответ дан 30 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: