Описание тега least-astonishment
Не удивляйте программиста тем, что он ведет себя / работает не так, как ожидалось.
1
ответ
Странно рубиновое поведение
Мне нужно проверить, является ли переменная массивом, и если нет, преобразовать ее в единицу, прежде чем приступить к дальнейшей обработке. Итак, мой код выглядит так: class Test < Struct.new(:args) def eval p "1. #{args}" args = (args.instance_o…
17 авг '11 в 08:43
1
ответ
Каковы последствия использования непостоянных типов в качестве аргументов по умолчанию в Python?
Возможные дубликаты: Почему синтаксис "изменяемый аргумент по умолчанию изменчив" так ужасен, спрашивает новичка Python Наименьшее удивление в Python: изменяемый аргумент по умолчанию Вот пример. def list_as_default(arg = []): pass
15 окт '10 в 21:20
38
ответов
"Наименьшее удивление" и изменчивый аргумент по умолчанию
Любой, кто возился с Python достаточно долго, был укушен (или разорван на части) следующей проблемой: def foo(a=[]): a.append(5) return a Новички в Python ожидают, что эта функция всегда будет возвращать список только с одним элементом: [5], Результ…
15 июл '09 в 18:00
5
ответов
"Булевы" операции в Python (т.е. операторы and и / или)
Этот метод ищет первую группу символов слова (то есть: [a-zA-Z0-9_]), возвращая первую подобранную группу или None в случае неудачи. def test(str): m = re.search(r'(\w+)', str) if m: return m.group(1) return None Эту же функцию можно переписать так:…
29 сен '10 в 22:53
1
ответ
Значения функций по умолчанию в многоуровневой архитектуре
Хотите знать, лучший способ установить значения по умолчанию в многоуровневой структуре приложения. В частности, если для определенного рабочего процесса требуется вложенный набор вызовов функций, указывается ли значение по умолчанию для всех функци…
02 фев '13 в 06:12
0
ответов
Запрет преобразования в фактор, когда количество столбцов в data.frame может быть уменьшено до одного
У меня есть процедура, которая может извлечь элементы из фрейма данных на основе списка условий в столбцах (см. Извлечение элементов из фрейма данных R с использованием критериев, заданных в виде списка (column_name = value)): Вот фрейм данных и спи…
29 ноя '16 в 13:56
0
ответов
Поведение изменяемого и неизменяемого объекта в функциях Python
Две части кода ниже дают разные результаты. def f1(x= []): x.append(1) return x print(f1()) print(f1()) Выход: [1] [1, 1] И для второй функции: def f2(x=0): x+=1 return x print(f2()) print(f2()) Выход: 1 1 Теперь я знаю, что это потому, что "1" имее…
03 авг '18 в 04:19
1
ответ
Не следует ли использовать FieldInfo.SetValue, чтобы установить для ValueType значение NULL?
(относится к PropertyInfo SetValue и нулям) Если у меня есть public class Thing { public int X; }, Thing oи FieldInfo fi это указывает на X поле, почему это законно называть fi.SetValue(o, null)? Среда выполнения устанавливает поле X в ноль, т.е. de…
25 авг '10 в 06:21
4
ответа
В Ruby, как включить переменную, содержащую объект класса?
Если я напишу это: case v when String puts :String else puts :other end Если я установлю v в "some string" Я получаю "String". Если я установлю v в StringЯ получаю "другое". Как я должен "переключаться" на переменную, содержащую один из нескольких о…
03 апр '17 в 13:47
3
ответа
Почему отрицательный идентификатор или ноль считается плохой практикой?
Почему отрицательный идентификатор или ноль считается плохой практикой при вставке первичного ключа в таблицу базы данных? Я думаю, что это может быть полезно в некоторых случаях, но люди говорят, что это не рекомендуется, несмотря на то, что они ни…
19 янв '12 в 14:29
3
ответа
Периодические даты на даты, которые не существуют
Когда я даю возможность что-то повторять каждый определенный промежуток времени, как мне относиться к временам, которые не повторяются на каждом интервале? Например, что должно произойти с напоминаниями о дне рождения на 29 февраля? Или, если у меня…
21 июн '09 в 18:53
2
ответа
Причина разрешения специальных символов в атрибутах Python
Я случайно обнаружил, что вы можете установить "незаконные" атрибуты для объекта, используя setattr, Под незаконным я подразумеваю атрибуты с именами, которые нельзя получить с помощью __getattr__ интерфейс с традиционным . Операторские ссылки. Их м…
08 июл '16 в 18:54
1
ответ
Должен ли я дать бобам другое имя, отличное от класса?
Должен ли я дать бобам новое имя в @Named аннотации, или я должен использовать то же самое, что и класс для удобства чтения? Есть ли какие-либо рекомендации относительно того, когда этого не делать или когда это делать? У меня есть компонент поддерж…
06 янв '12 в 18:01
1
ответ
Возвращение `self` в методе класса ActiveRecord теряет косвенную ссылку
При определении метода класса в ActiveRecord, если я вернусь self, косвенная ссылка теряется. Я не уверен, что использую правильный словарный запас, так как я только изучаю Ruby on Rails, поэтому вот пример: class User < ActiveRecord::Base has_ma…
10 фев '16 в 23:42
1
ответ
Инициализаторы коллекций внутри инициализаторов объектов со значениями по умолчанию
Я только что наткнулся на следующую проблему: class Settings { // Let's set some default value: { 1 } public ICollection<int> AllowedIds = new List<int>() { 1 }; } static void Main(string[] args) { var s = new Settings { AllowedIds = { 1…
02 июн '20 в 17:39
2
ответа
Заставить ++o++ жаловаться на типы с определяемыми пользователем пре- и постфиксными операторами приращения
Я ищу способ предотвратить ++x++ от работы с типами с определяемыми пользователем префиксными и постфиксными операторами приращения. Для встроенных типов тип результата постфиксного оператора - это не lvalue, а выражение prvalue, и компиляторы хорош…
24 мар '21 в 23:43
0
ответов
«Никогда не изменяйте и не удаляйте работу пользователя без его ведома» — как называется этот принцип проектирования программного обеспечения?
Существует ли принцип проектирования программного обеспечения, согласно которому приложение никогда не должно изменять или удалять работу пользователя, выполненную в приложении, без его ведома? Он очень похож на принцип наименьшего удивления , но ко…
03 сен '23 в 02:44