[Python, Программирование] Функция property() в Python (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Перевод материала подготовлен в рамках онлайн-курса "Python Developer. Basic".Приглашаем всех желающих на двухдневный онлайн-интенсив «Разработка десктоп-приложения с помощью библиотеки Tkinter». На интенсиве получим начальные навыки бэкенд-разработки на Python, а также начнем разработку десктоп-приложения с помощью библиотеки Tkinter. По итогам 2х дней сможем создать инвестиционное приложение для просмотра актуальной цены на необходимые акции или валюту. Присоединяйтесь!
Функция property() используется для определения свойств в классах.Метод property() обеспечивает интерфейс для атрибутов экземпляра класса. Он инкапсулирует атрибуты экземпляров и предоставляет свойства, аналогично тому, как это работает в Java и C#.Метод property() принимает на вход методы get, set и delete, и возвращает объекты класса property.Вместо метода property() лучше использовать декоратор property (https://www.tutorialsteacher.com/python/property-decorator).
Параметры:
- fget: (опционально) Функция для получения значения атрибута. Значение по умолчанию None.
- fset: (опционально) Функция для задания значения атрибута. Значение по умолчанию None.
- fdel: (опционально) Функция для удаления значения атрибута. Значение по умолчанию None.
- doc: (опционально) Строка, содержащая документацию. Значение по умолчанию None.
Возврат значений:Возвращает атрибут свойства из заданных геттера, сеттера и функции удаления.Следующий пример показывает, как создать свойство в Python с помощью функции property().
class person:
def __init__(self):
self.__name=''
def setname(self, name):
print('setname() called')
self.__name=name
def getname(self):
print('getname() called')
return self.__name
name=property(getname, setname)
В примере выше property(getname, setname) возвращает объект свойства и присваивает ему имя. Таким образом, свойство name скрывает приватный экземпляр __name. Доступ к свойству name осуществляется напрямую, но внутри вызывается метод getname() или setname(), как показано ниже.
>>> from person import person
>>> p1=person()
>>> p1.name="Steve"
setname() called
>>> p1.name
getname() called
'Steve'
Как видно выше, метод getname() вызывается автоматически, когда мы обращаемся к свойству name. Аналогично метод setname вызывается, когда мы присваиваем значение свойству name. Он скрывает атрибут класса __name.Аналогично можно написать метод удаления свойства, как в коде ниже.
class person:
def __init__(self, name):
self.__name=name
def setname(self, name):
print('setname() called')
self.__name=name
def getname(self):
print('getname() called')
return self.__name
def delname(self):
print('delname() called')
del self.__name
# Set property to use get_name, set_name
# and del_name methods
name=property(getname, setname, delname)
Функция delname() будет вызвана, когда вы удалите свойство name.
>>> from person import person
>>> p1=person()
>>> p1.name="Steve"
setname() called
>>> del p1.name
delname() called
Таким образом, мы можем определить свойство в классе с помощью функции property() в Python.Декоратор @property упрощает объявление свойства и позволяет сделать это не вызывая функцию property().
Узнать подробнее о курсе "Python Developer. Basic"Регистрация на двухдневный онлайн-интенсив «Разработка десктоп-приложения с помощью библиотеки Tkinter»: День 1, День 2.
===========
Источник:
habr.com
===========
===========
Автор оригинала: tutorialsteacher.com
===========Похожие новости:
- [Программирование, Java] Отправка электронных писем с помощью Spring (перевод)
- [Тестирование игр] 7 методов тестирования игр (перевод)
- [Программирование, Разработка робототехники, Бизнес-модели, Робототехника] Кружок робототехники VS технический центр
- [Программирование, Совершенный код, Управление разработкой] Почему в мире так много отстойного ПО (перевод)
- [Oracle, Программирование, SQL, DevOps] Настройка CI/CD скриптов миграции БД с нуля с использованием GitLab и Liquibase
- [Программирование микроконтроллеров, Производство и разработка электроники, Компьютерное железо] Новые цены на микроконтроллеры STM32 из свежих поставок
- [Open source, Python, Машинное обучение, Изучение языков] Сам себе Гутенберг. Делаем параллельные книги
- [Perl, Ruby, Python, Программирование, Node.JS] Сервер в одну строку на 17 языках (перевод)
- [Программирование, Учебный процесс в IT, Карьера в IT-индустрии] Личный опыт: подготовка к магистратуре JetBrains в Университете ИТМО и первые впечатления
- [Программирование, Анализ и проектирование систем, Хранение данных, Хранилища данных] Транзакции. Часть 1. Конспект книги «Designing Data-Intensive Applications»
Теги для поиска: #_python, #_programmirovanie (Программирование), #_python, #_property, #_tinker, #_blog_kompanii_otus (
Блог компании OTUS
), #_python, #_programmirovanie (
Программирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:57
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Перевод материала подготовлен в рамках онлайн-курса "Python Developer. Basic".Приглашаем всех желающих на двухдневный онлайн-интенсив «Разработка десктоп-приложения с помощью библиотеки Tkinter». На интенсиве получим начальные навыки бэкенд-разработки на Python, а также начнем разработку десктоп-приложения с помощью библиотеки Tkinter. По итогам 2х дней сможем создать инвестиционное приложение для просмотра актуальной цены на необходимые акции или валюту. Присоединяйтесь!
Функция property() используется для определения свойств в классах.Метод property() обеспечивает интерфейс для атрибутов экземпляра класса. Он инкапсулирует атрибуты экземпляров и предоставляет свойства, аналогично тому, как это работает в Java и C#.Метод property() принимает на вход методы get, set и delete, и возвращает объекты класса property.Вместо метода property() лучше использовать декоратор property (https://www.tutorialsteacher.com/python/property-decorator). Параметры:
class person:
def __init__(self): self.__name='' def setname(self, name): print('setname() called') self.__name=name def getname(self): print('getname() called') return self.__name name=property(getname, setname) >>> from person import person
>>> p1=person() >>> p1.name="Steve" setname() called >>> p1.name getname() called 'Steve' class person:
def __init__(self, name): self.__name=name def setname(self, name): print('setname() called') self.__name=name def getname(self): print('getname() called') return self.__name def delname(self): print('delname() called') del self.__name # Set property to use get_name, set_name # and del_name methods name=property(getname, setname, delname) >>> from person import person
>>> p1=person() >>> p1.name="Steve" setname() called >>> del p1.name delname() called Узнать подробнее о курсе "Python Developer. Basic"Регистрация на двухдневный онлайн-интенсив «Разработка десктоп-приложения с помощью библиотеки Tkinter»: День 1, День 2.
=========== Источник: habr.com =========== =========== Автор оригинала: tutorialsteacher.com ===========Похожие новости:
Блог компании OTUS ), #_python, #_programmirovanie ( Программирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:57
Часовой пояс: UTC + 5