Когда вы добавляете новое представление о проекте ASP.NET MVC, вы можете сильно напечатать представление, выбрав, с каким образцовым классом оно должно работать в диалоговом окне. Проблема заключается в том, что в этом раскрывающемся меню содержатся все классы и интерфейсы из всех проектов и dll, на которые имеются ссылки. Итак, я вижу все классы Ninject, все интерфейсы для моих услуг и т.д. в этом меню. Есть ли способ указать, какие пространства имен включить или список пространств имен исключить из этого раскрывающегося меню?
Я понимаю, что это не очень важно, и вы можете просто начать вводить имя класса в поле, и он будет подтягивать нужное. Я просто подумал, что если бы было место для этого, было бы неплохо. Если нет, ничего страшного, но я подумал спросить.:)
-121--1530000-Цитата из чего-то:
>>> x = y = somefunction()
совпадает с
>>> y = somefunction()
>>> x = y
Вопрос: Является ли
x = y = somefunction()
таким же, как
x = somefunction()
y = somefunction()
?
Исходя из моего понимания, они должны быть одинаковыми, потому что somfunction
может возвращать только одно значение.
Например:
def is_computer_on():
return True
x = y = is_computer_on()
или
def get_that_constant():
return some_immutable_global_constant
Обратите внимание, что результат будет таким же, но процесс достижения результата не будет:
def slow_is_computer_on():
sleep(10)
return True
Содержание переменных x и y будет одинаковым, но инструкция x = y = slow_is_computer_on()
будет длиться 10 секунд, а ее аналог x = slow_is_computer_on() ; y = slow_is_computer_on()
будет длиться 20 секунд.
Например:
def count_three(i):
return (i+1, i+2, i+3)
x = y = count_three(42)
Обратите внимание, что применяются те же уловы, которые описаны в предыдущем разделе.
Почему я говорю почти ? Из-за этого:
x = y = count_three(42)
x is y # <- is True
x = count_three(42)
y = count_three(42)
x is y # <- is False
Хорошо, использование is
является чем-то странным, но это показывает, что результат не тот. Это важно для изменчивого случая:
На этот вопрос также был дан ответ. Для полноты картины я повторю аргумент:
def mutable_count_three(i):
return [i+1, i+2, i+3]
x = y = mutable_count_three(i)
Поскольку в этом сценарии x
и y
являются одним и тем же объектом, выполнение операции, подобной x.append(42)
, означало бы, что оба x
и y
содержит ссылку на список, который теперь имеет 4 элемента.
Рассматривая побочный эффект печати (который я считаю допустимым, но вместо этого можно использовать другие примеры):
def is_computer_on_with_side_effect():
print "Hello world, I have been called!"
return True
x = y = is_computer_on_with_side_effect() # One print
# The following are *two* prints:
x = is_computer_on_with_side_effect()
y = is_computer_on_with_side_effect()
Вместо печати это может быть более сложный или более тонкий побочный эффект, но факт остается фактом: метод вызывается один или два раза, и это может привести к другому поведению.
Может быть, простой случайный метод:
def throw_dice():
# This is a 2d6 throw:
return random.randint(1,6) + random.randint(1,6)
x = y = throw_dice() # x and y will have the same value
# The following may lead to different values:
x = throw_dice()
y = throw_dice()
Но, вещи, связанные с часами, глобальными счетчиками, Системный материал и т. д. чувствителен к тому, чтобы быть недетерминированным, учитывая входные данные, и в этих случаях значения x
и y
могут отличаться. [+1139]