Рубрики
Без рубрики

Python One Line Class

Вы ненавидите эти длительные определения класса с __init__ и слишком много пробелов и новых линий? Python One-Listers к спасению! К счастью, вы можете создавать классы в одной строке – и это может даже быть пифитоном, чтобы сделать это! Звучит слишком хорошо, чтобы быть правдой? Давайте погрузимся прямо в это! Проблема: как создать класс Python … Python One Line Class Подробнее »

Автор оригинала: Chris.

Ты ненавидишь те прошедший класс определения с участием __в этом__ И слишком много пробелов и новых линий? Python одноклассники в помощь! К счастью, вы можете создавать классы в одной строке, и это даже может быть Pythonic, чтобы сделать это! Звучит слишком хорошо, чтобы быть правдой? Давайте погрузимся прямо в это!

Проблема : Как создать класс Python в одной строке кода?

Пример : Скажи, вы хотите создать класс Автомобиль с двумя атрибутами Скорость и цвет Отказ Здесь было бы длительное определение:

class Car:

    def __init__(self, speed, color):
        self.speed = speed
        self.color = color


porsche = Car(200, 'red')
tesla = Car(220, 'silver')

print(porsche.color)
# red

print(tesla.color)
# silver

Как вы делаете это в одной строке кода?

Давайте сначала просмотрим обзор в нашей интерактивной оболочке Python:

Упражнение : Создайте третий атрибут сиденья И инициализируйте его как для Tesla, так и для автомобиля Porsche!

Метод 1: Тип ()

Тип (имя, базы, Dict ) Функция создает и возвращает новый объект. Требуется три аргумента, которые позволяют настроить объект:

  • Имя : Это название класса нового объекта. Это становится Имя атрибут, чтобы вы могли использовать объект. Несколько Для доступа к значению аргумента.
  • Основы : Это кортеж одного или нескольких ценностей кортежей, которые определяют базовые классы. Вы можете получить доступ к контенту через объект. Базы атрибут вновь созданного объекта.
  • обдумывать : Это пространство имен с Атрибуты класса и методы определения. Вы можете создавать пользовательские атрибуты и методы здесь. В случае, если вы хотите получить доступ к значениям позже, вы можете использовать объект .__ Dict__ атрибут на недавно созданном объекте.

Вот как вы можете использовать Тип () Функция для создания нового Автомобиль объект Porsche :

# Method 1: type()

# One-Liner
porsche = type('Car', (object,), {'speed': 200, 'color': 'red'})

# Result
print(porsche.color)
# red

Если вам нужно узнать больше о Тип () Функция, проверьте нашу связанную статью.

Связанная статья : Как создать встроенные объекты со свойствами? [ Python One-lister]

Тип () Функция немного известна, но очень эффективна, когда речь идет о создании объекта различных типов. Единственным недостатком является то, что вы не можете использовать его, например, для создания другого объекта. Вам нужно будет использовать один и тот же список аргументов для создания второго объекта того же типа, который может быть немного утомительным в некоторых случаях.

Способ 2: Lambda Object + Динамические атрибуты

лямбда Ключевое слово обычно используется для создания новой и анонимной функции. Однако в Python все является объектом-даже функциями. Таким образом, вы можете создать функцию с возвратным значением Нет и использовать его как Автомобиль объект.

Затем вы добавляете две динамические атрибуты Скорость и цвет к вновь созданному объекту. Вы можете одноразовый Все с помощью Semicolon Syntax для Cram несколько строк кода в одну строку. Вот как этот результат выглядит как:

# Method 2: lambda + dynamic attributes

# One-Liner
tesla = lambda: None; tesla.speed = 200; tesla.color = 'silver'

# Result
print(tesla.color)
# silver

Этот метод немного неестественно – и я бы рассмотрел его наименее питонским среди обсуждаемых в этой статье. Однако следующий довольно пифит!

Метод 3: названные кортежи

Также также есть захватывающий тип данных в модуле коллекций: названные кортежи.

from collections import namedtuple

# One-Liner
tesla = namedtuple('Car', ['speed', 'color'])(200, 'silver')

# Result
print(tesla.speed, tesla.color)
# 200 silver

Определение объекта NamedTuple состоит из двух частей:

  • Первая часть выражения NamedTuple («Автомобиль», [«Скорость», «Цвет»]) Создает новый объект с двумя атрибутами, приведенными в Список Отказ
  • Вторая часть выражения связывает строку «Значение» к атрибуту кортежа «Собственность» Отказ

Этот конечный метод является эффективным, чистым и лаконичным, и он решает проблему для создания класса Python в одной строке кода, поскольку вы можете повторно использовать свой NamedTuple «Class», чтобы создать несколько экземпляров, если хотите!

Python One-Liners Книга

Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.

Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.

Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:

Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку

К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.

Получите свой Python One-Liners сейчас !!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-one-line-class/”