Решение на Ретроспекция от Христо Хърсев

Обратно към всички решения

Към профила на Христо Хърсев

Резултати

  • 0 точки от тестове
  • 6 бонус точки
  • 6 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

REPOSITORY = 'https://github.com/hhursev/python-retrospective.git'
# Двадесет неща, които научих.
#
# 1. Константи извън функциите, в по-горен scope
# 2. Да не ползвам min/len на места където може да ни се подаде безкраен
# iterator (obviously)
# 3. comprehensions.__gt__(map / filter / zip / reduce) => #True
# 4. Generator expressions и техните плюсове в някои ситуации
# 5. Мога да проверявам дали даден ключ го има в речник просто с key in dict
# 6. Ако подаваме на метод няколко аргумента *args, то вътрешно в тялото на
# метода args представлява tupple. Ако искаме да ги подадем отново на
# функция пишем *args.
# 7. Когато подадем tuple на функция с *, си разбива елементите на tuple-а и ги
# обработва по отделно
# 8. Благодарения и на този "tuple packing/unpacking" механизъм можем да
# присвоим едно, две, три = 1, 2, 3
# 9. Ако имаме атрибут със същото име като метод в някой клас.. _ на атрибута
# 10. Функциите, който ще са като private методи се обозначават с начален двоен
# underscore (__method_name)
# 11. Разликата между set() и set([]). Понякога да използваш второто улеснява
# 12. true_statement if condition else false_statement е по-точно определение
# за oneline if-овете в Python. statemеnt.__eq__(expression) => #False
# 13. Елегантно използване на ** за създаване на стрингове с елементи от речник
# 14. Предназначението на единичния underscore
# 15. Изобщо http://www.python.org/dev/peps/pep-0008/#designing-for-inheritance
# 16. Имаме си comprehension и за dictionary
# 17. Да не прекалявам със създаването на атрибути на даден клас, ако може да
# се мине с по-малко и всичко да си работи без тях
# 18. Дори атрибутите на даден клас да са private и да не могат да се достигат
# от инстанции на класа, те все пак са видими в __dict__ на инстанцията.
# Където се появяват като _ClassName__attribute
# 19. Следователно може да си ги достигнем от инстанция на класа с
# instance_name._ClassName__atribute
# 20. Това донякъде е недостатък на Python (общо взето private не съществува),
# но от друга страна е и сила на Python. Ако някой си обърка и оплеска
# йерархията и дизайна, може по-лесно да се заобикалят и отстраняват грешки

История (2 версии и 0 коментара)

Христо обнови решението на 29.04.2013 13:56 (преди над 11 години)

+REPOSITORY = 'https://github.com/hhursev/python-retrospective.git'
+
+# Двадесет неща, които научих.
+#
+# 1. Константи извън функциите, в по-горен scope
+# 2. Да не ползвам min/len на места където може да ни се подаде безкраен
+# iterator (obviously)
+# 3. comprehensions.__gt__(map / filter / zip / reduce) => #True
+# 4. Generator expressions и техните плюсове в някои ситуации
+# 5. Мога да проверявам дали даден ключ го има в речник просто с key in dict
+# 6. Ако подаваме на аргумента няколко аргумента *args, то вътрешно в тялото на
+# метода args представлява tupple. Ако искаме да ги подадем отново на
+# функция пишем *args.
+# 7. Когато подадем tuple на функция с *, си разбива елементите на tuple-а и ги
+# обработва по отделно
+# 8. Благодарения и на този "tuple packing/unpacking" механизъм можем да
+# присвоим едно, две, три = 1, 2, 3
+# 9. Ако имаме атрибут със същото име като метод в някой клас.. _ на атрибута
+# 10. Функциите, който ще са като private методи се обозначават с начален двоен
+# underscore (__method_name)
+# 11. Разликата между set() и set([]). Понякога да използваш второто улеснява
+# 12. true_statement if condition else false_statement е по-точно определение
+# за oneline if-овете в Python. statemеnt.__eq__(expression) => #False
+# 13. Елегантно използване на ** за създаване на стрингове с елементи от речник
+# 14. Предназначението на единичния underscore
+# 15. Изобщо http://www.python.org/dev/peps/pep-0008/#designing-for-inheritance
+# 16. Имаме си comprehension и за dictionary
+# 17. Да не прекалявам със създаването на атрибути на даден клас, ако може да
+# се мине и всичко да си работи без тях
+# 18. Дори атрибутите на даден клас да са private и да не могат да се достигат
+# от инстанции на класа, те все пак са видими в __dict__ на инстанцията.
+# Където се появяват като _ClassName__attribute
+# 19. Следователно може да си ги достигнем от инстанция на класа с
+# instance_name._ClassName__atribute
+# 20. Това донякъде е недостатък на Python (общо взето private не съществува),
+# но от друга страна е и сила на Python. Ако някой си обърка и оплеска
+# йерархията и дизайна, може по-лесно да се заобикалят и отстраняват грешки

Христо обнови решението на 29.04.2013 14:00 (преди над 11 години)

REPOSITORY = 'https://github.com/hhursev/python-retrospective.git'
# Двадесет неща, които научих.
#
# 1. Константи извън функциите, в по-горен scope
# 2. Да не ползвам min/len на места където може да ни се подаде безкраен
# iterator (obviously)
# 3. comprehensions.__gt__(map / filter / zip / reduce) => #True
# 4. Generator expressions и техните плюсове в някои ситуации
# 5. Мога да проверявам дали даден ключ го има в речник просто с key in dict
-# 6. Ако подаваме на аргумента няколко аргумента *args, то вътрешно в тялото на
+# 6. Ако подаваме на метод няколко аргумента *args, то вътрешно в тялото на
# метода args представлява tupple. Ако искаме да ги подадем отново на
# функция пишем *args.
# 7. Когато подадем tuple на функция с *, си разбива елементите на tuple-а и ги
# обработва по отделно
# 8. Благодарения и на този "tuple packing/unpacking" механизъм можем да
# присвоим едно, две, три = 1, 2, 3
# 9. Ако имаме атрибут със същото име като метод в някой клас.. _ на атрибута
# 10. Функциите, който ще са като private методи се обозначават с начален двоен
# underscore (__method_name)
# 11. Разликата между set() и set([]). Понякога да използваш второто улеснява
# 12. true_statement if condition else false_statement е по-точно определение
# за oneline if-овете в Python. statemеnt.__eq__(expression) => #False
# 13. Елегантно използване на ** за създаване на стрингове с елементи от речник
# 14. Предназначението на единичния underscore
# 15. Изобщо http://www.python.org/dev/peps/pep-0008/#designing-for-inheritance
# 16. Имаме си comprehension и за dictionary
# 17. Да не прекалявам със създаването на атрибути на даден клас, ако може да
-# се мине и всичко да си работи без тях
+# се мине с по-малко и всичко да си работи без тях
# 18. Дори атрибутите на даден клас да са private и да не могат да се достигат
# от инстанции на класа, те все пак са видими в __dict__ на инстанцията.
# Където се появяват като _ClassName__attribute
# 19. Следователно може да си ги достигнем от инстанция на класа с
# instance_name._ClassName__atribute
# 20. Това донякъде е недостатък на Python (общо взето private не съществува),
# но от друга страна е и сила на Python. Ако някой си обърка и оплеска
# йерархията и дизайна, може по-лесно да се заобикалят и отстраняват грешки