Если вы использовали Python в течение довольно продолжительности, вы уже можете быть знакомы со всеми, или большинство трюков, которые мы обсудим ниже. Но я думаю, что всегда лучше провести их бодро, если бы это было дни, вы использовали что-то в частности.
Это также будет включать фрагменты, поэтому вы можете просто открыть интерактивную оболочку Python и начать вместе с примерами.
✨ Давайте начнем с чего-то маленького и один лайнер
Одной из основных концепций кода является максимально написать как можно меньше кода и сделать код как можно более многоразовым. Функции – это один из способов, да – один пример, которые каждый дает при разговоре о воспроизведении. Давайте сберем на одну ступеньку. Скажем, вы хотите список в Python длины 5 со всеми элементами как 1. Написать это как lst = [1, 1, 1, 1, 1]
будет способ пойти, верно? Но не так … Повторяясь, и мы отвлекаем от повторного использования, о которых говорится? Хорошие новости, мы можем сократить наши усилия здесь. Мы можем написать это как: lst = [1]*5
Это также следует для строк. Если вы хотите, например, чтобы скрыть номер телефона и показать только последние 3 цифры номера пользователю, вы можете сделать что-то вроде:
number = '1234567890' hidden_number = "x"*7 + number[-3:] 'xxxxxxx890'
✨ обратная строка/список в щелчке
Если вы пойдете из C/C ++, вы, вероятно, я бы явно помню итерацию от последнего элемента и копируя его на новую переменную для получения обратной строки/массива. С Python вы можете:
a = [1, 2, 3, 4, 5] a[::-1] [5, 4, 3, 2, 1]
✨ еще не только если брать брат, но и для брат или сестра
еще
это то, что все учебные покрытия условными. Это тот же старый Если это, то это; еще это Отказ Но знаете ли вы, что мы можем использовать еще
С нашим другом любимым членом семьи – для
? Вот как это происходит. Ты помнишь время, когда вы бы Перерыв
Из цикла, когда вы что-то нашли, или условие удовлетворено, и вы будете использовать флаг прямо до того, как вы получили цикл, чтобы код после того, как код после того, как сердечник знаешь, что вы ударили перерыв
В частности, и это был не обычный конец цикла? Использование для ... Элсе
Устраняет использование флагов с более простым синтаксисом.
a = [1, 3, 5, 7, 9] b = [1, 3, 2, 5, 7, 9] for i in a: if i % 2 == 0: print("list contains even elements") break else: print("list has no even elements") >>> list has no even elements for i in b: if i % 2 == 0: print("list contains even elements") break else: print("list has no even elements") >>> list contains even elements
✨ revelio
Предположим, у вас есть объект Python, это может быть что-то – функции/модули/словари, и его можно создавать или получать через API или сторонний код. Часто мы должны знать список атрибутов и методов, которые доступны на объекте. Вместо того, чтобы смотреть на код, мы можем просто перечислить те, кто использует Dir
Отказ
class Example: name = "example" ex_id = 1 def ex_print(self): print("example instance") >>> ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'ex_id', 'ex_print', 'name']
Вышеуказанный список – это список атрибутов и методов объекта без значений. Обратите внимание на ex_id
, Ex_Print
, имя
В списке – это может прийти очень удобно при работе с объектами и знать, какие методы/атрибуты доступны на них.
✨ Передача атрибутов функции для неизвестного
Давайте возьмем функцию, где у вас есть куча дополнительных аргументов, и вам нужно позвонить в функцию пару раз, каждый раз с другим набором аргументов.
Если вы работали с Django Orm, вы бы знали, что Фильтр ()
Принимает кучу значений фильтра. Для тех, кто новый для этого: В Django базы данных сделаны проще с комплектным соотношением объектов. Это также облегчает запрос базы данных для определенных записей. Предположим, у нас есть таблица пользователей, которые могут быть сотрудниками или нет, и принадлежат к определенному отделению Организации. Короче говоря, мы хотим функцию, которая выбирает записи на основе различных комбинаций фильтра и рассчитывает их точки рейтинга для планов по выгод Организации. Один из способов сделать это, чтобы получить записи отдельно для каждой комбинации фильтра, которые нам нужны, а затем рассчитайте точки ранжирования, или другой будет выполнять фильтрацию внутри функции. Мы пойдем со последним вариантом для этой статьи. Давайте посмотрим более подробно:
Для фильтрации синтаксис идет
records = UserTable.objects.filter(is_staff=, department= )``` {% endraw %} Instead of saying {% raw %}`department=None`{% endraw %} (which would search for None values) when not wanting o filter on the department, we could just not pass the department to the filter - it's optional! But we do need only one instruction that would handle all the combinations and cases. Maybe an example would help: {% raw %} ```python args1 = {'is_staff': True} args2 = {'is_staff': True, 'department': 'Mgmt'} args3 = {'department': 'Ops'}
Пусть это будут 3 фильтра, которые вы хотите выполнить, но у вас есть общая функция, где вы хотите пройти значения фильтрации:
def get_ranking(args): members = UserTable.objects.filter(**args) for member in members: # do something pass
С этим нам не нужно беспокоиться о звонке get_ranking ()
с разными наборами аргументов. Мы можем:
rankings = get_ranking(args1) rankings = get_ranking(args2) rankings = get_ranking(args3)
Вот что функция на самом деле распаковывает:
members = UserTable.objects.filter(**args) members = UserTable.objects.filter(is_staff=True) # with args1 members = UserTable.objects.filter(is_staff=True, department='Mgmt') # with args2 members = UserTable.objects.filter(department='Ops') # with args3
Это все для этого поста, может быть, я столкнусь с более захватывающими вещами (который я уверен, что Python полон) и продолжить эту серию для любого и каждого настроения, которое вы могли бы иметь. Дайте мне знать, где и как вы использовали трюки или планируйте их использовать, поэтому мы все можем купаться в магии Python.
Оригинал: “https://dev.to/veedhee/random-python-tricks-for-random-moods-4g82”