Встроенный Python Getattr (объект, строка)
Функция возвращает значение объект
атрибут с именем строка
Отказ Если это не существует, он возвращает значение, указанное в качестве необязательного третьего по умолчанию
аргумент Если это тоже не существует, он поднимает AttributeError
Отказ Пример – Getattr (Porsche, 'Speed')
который эквивалентен Porsche.speed
Отказ
Применение
Узнайте пример! Вот пример того, как использовать getattr ()
Встроенная функция Отказ
# Define class with one attribute class Car: def __init__(self, brand, speed): self.brand = brand self.speed = speed # Create object porsche = Car('porsche', 100) tesla = Car('tesla', 110) # Two alternatives to get instance attributes: print(getattr(porsche, 'brand') + " " + str(getattr(porsche, 'speed'))) print(tesla.brand + " " + str(tesla.speed)) # Get an attribute that doesn't exist with default argument: print(getattr(porsche, 'color', 'red'))
Выход этого кода-фрагмента:
porsche 100 tesla 110 red
Синтаксис getattr ()
getattr ()
Объект имеет следующий синтаксис:
Syntax: getattr(object, attribute[, default]) # Get object's attribute value or default if non-existent
Аргументы | объект | Объект, из которого следует нарисовать значение атрибута. |
атрибут | Имя атрибута как строка. | |
По умолчанию | Возвращаемое значение в случае, если атрибут не существует. | |
Возвращаемое значение | объект | Возвращает значение атрибута объекта экземпляра или по умолчанию, если не существует. |
Видео Getattr ()
Возвращаемое значение из Getattr ()
Getattr (объект, атрибут, по умолчанию)
Метод возвращает одно из следующих действий:
- Значение
объект
‘sатрибут
по умолчанию
, если атрибут не существуетAttributeError
Если ни атрибут не существует, нипо умолчанию
предоставлен.
Упражнение интерактивных оболочек: понимание Getattr ()
Рассмотрим следующий интерактивный код:
Упражнение : Исправьте ошибку в коде!
Но прежде чем мы будем двигаться дальше, я рад представить вам мою новую книгу Python Python One-listers (Amazon Link).
Если вам нравятся одноклассники, вы будете любить книгу. Это научит вам все, что нужно знать о Одно строка кода Python. Но это тоже Введение в компьютерную науку , наука о данных, машин обучения и алгоритмы. Вселенная в одной строке Python!
Книга была выпущена в 2020 году с помощью книги по программированию мирового класса Nostarch Press (San Francisco).
Ссылка: https://nostarch.com/pythononeliners.
Зачем использовать getattr () вместо dot, чтобы получить атрибут?
Вы видели две альтернативы, чтобы получить атрибут:
getattr (объект, attribute_str)
объект.attribute.
Зачем использовать функцию Getattr () в более лаконичном синтаксисе точечного точка?
Есть две основные причины:
getattr ()
Обеспечивает значение по умолчанию в случае, если атрибут не существует, тогда как синтаксис точек бросает ошибку.getattr ()
позволяет динамически получать доступ к атрибуту со строкой вместо имени. Например, вы можете получить строку в качестве ввода пользователя, в этом случае вы не можете использовать синтаксис DOTобъект.attribute
потому чтоатрибут
это строка, а не имя.
Связанные функции
-
getattr ()
Функция возвращает значение атрибута. -
setattr ()
Функция меняет значение атрибута. -
Hasattr ()
Функция проверяет, существует ли атрибут. -
Делаттр ()
Функция удаляет существующий атрибут.
Резюме
Встроенный Python Getattr (объект, строка)
Функция возвращает значение объект
атрибут с именем строка
Отказ
# Define class with one attribute class Car: def __init__(self, brand, speed): self.brand = brand self.speed = speed porsche = Car('porsche', 100) print(getattr(porsche, 'brand') + " " + str(getattr(porsche, 'speed'))) # porsche 100
Если это не существует, он возвращает значение, указанное в качестве необязательного третьего по умолчанию
аргумент
print(getattr(porsche, 'color', 'red')) # red
Если это тоже не существует, он поднимает AttributeError
Отказ
print(getattr(porsche, 'color')) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\HowToConvertBooleanToStringPython\code.py", line 12, inprint(getattr(porsche, 'color')) AttributeError: 'Car' object has no attribute 'color' '''
Пример – Getattr (Porsche, 'Speed')
который эквивалентен Porsche.speed
Отказ
print(getattr(porsche, 'speed')) print(porsche.speed) # Both print attribute value: 100
Я надеюсь, что вам понравилось статью! Чтобы улучшить свое образование Python, вы можете присоединиться к популярной академии по электронной почте Free Finxter:
Хотите увеличить свои навыки Python в веселой и легкой потребности? Рассмотрим следующие ресурсы и стать магистральным кодером!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.