Автор оригинала: Shubham Sayon.
Если вы эффективно приняли еще один объектно-ориентированный язык программирования, вы, вероятно, должны были реализовать, что условия- атрибуты и свойства обычно используются эквивалентно. Действительно, даже в типичном английском использовании слов « Атрибуты » и « Свойство » можно использовать как эквиваленты.
Но когда дело доходит до питона, свойства и атрибуты два разных веща. Итак, без дальнейшего ADO давайте узнаем о них.
🔑 Разница между имуществом и атрибутом в Python
💡 Вы можете думать о свойства как Особый вид атрибутов которые предоставляют Добрать
, Сеттер
и Удаление
Функциональность атрибута.
Давайте посмотрим на следующий пример, чтобы понять разницу между двумя:
class Finxter: # This is an attribute def __init__(self,n): print("---Attribute---") self.name = n print("Welcome ", self.name,'\n') @property def foo(self): print("---Getter Method---") return self.name @foo.setter def foo(self,name): print("---Setter Method---") print("Setting Name as ",name,'\n') self.name= name @foo.deleter def foo(self): print("---Deleter Method---") del self.name obj = Finxter('Finxter') obj.foo = 'Chris' print("Welcome", obj.foo,'\n') del obj.foo
Выход:
---Attribute--- Welcome Finxter ---Setter Method--- Setting Name as Chris ---Getter Method--- Welcome Chris ---Deleter Method---
Объяснение:
- Первоначально
__init__
Способ, который является атрибутом экземпляра, вызывается. Таким образом, выход –Добро пожаловать Finxter
Отказ - Python, затем наткнулся на
@Property
декоратор. Таким образом,Добрать
,Сеттер
иУдаление
Методы выполняются один за другим после этого.
Свойство | Атрибут |
◈ Недвижимость дает вам контроль над своими методами Getter, Setter и Delete, I.E., __get__, __set__ и __delete__. | ◈ С атрибутом вы не можете работать с методами __get__, __set__ и __delete__. |
◈ Недвижимость может рассматриваться как особый вид атрибута. | ◈ Атрибуты могут быть описаны с помощью переменных, таких как имя, возраст, высота и т. Д. Это может быть из следующих типов: – 1. Атрибуты класса. 2. Атрибуты экземпляра |
Давайте погрузиться глубоко в атрибуты и свойства иметь лучшее сцепление на них.
💎attributes в Python
В Python атрибуты могут быть из следующих типов:
- Класс атрибутов
- Атрибуты экземпляра
📌 Атрибуты класса в Python
- В Python атрибуты класса являются атрибутами, созданными внутри определения класса и принадлежат к самому классу.
- Атрибуты класса совместно используются между всеми другими объектами того же класса.
Пример:
class Job: # class attribute exp = 0 def foo(self): Job.exp += 1 return Job.exp # Creating object for the class obj_a = Job() obj_b = Job() # class attribute 'experience' is shared by all objects of the class print("Name: Rashi \t Experience: ", obj_a.foo(), "Year") print("Name: Shubham \t Experience: ", obj_b.foo(), "Years")
Выход:
Name: Rashi Experience: 1 Year Name: Shubham Experience: 2 Years
Объяснение:
В приведенной выше программе атрибут класса exp
делятся всеми объектами класса ‘ Работа
‘. Таким образом, он увеличивается на 1
каждый раз, когда новый экземпляр вызывает его.
Примечание: Атрибуты класса определяются за пределами конструктора __init__.
📌 Атрибуты экземпляра в Python
объект Ничего, кроме случаев класса в Python. Хотя класс можно рассматривать как план, для которого могут быть созданы объекты.
Атрибуты экземпляра уникальны для каждого экземпляра в Python. Это означает, что каждый атрибут экземпляра существует независимо в пределах объема его объекта и может быть изменен без влияния на другие экземпляры.
Пример:
# Creating a class class student: def __init__(s): # Creating a constructor s.name = "Harry Potter" s.age = "19" # These are instance attributes # Defining a method def display(s): # Printing the details print("Student name-", s.name) print("Student age-", s.age) # Creating object st for the student class st = student() # Calling the method st.display()
Выход:
Student name- Harry Potter Student age- 19
Рекомендуемый видеоурок на атрибутах 👇.
Источник: https://blog.finxter.com/python-attributes/
📜 Недвижимость в Python
Чтобы понять, что есть свойства в Python, давайте посмотрим на следующий пример:
# Creating a class class Rectangle(object): # Defining a method def __init__(self, length, width): self.length = length self.width = width self.area = self.length*self.width # instantiation rect = Rectangle(5, 4) print('Length = {}'.format(rect.length)) print('Width = {}'.format(rect.width)) print('Area = {}'.format(rect.area)) print() # Changing the length and breadth of rectangle rect.length = 6 rect.width = 8 print('Length = {}'.format(rect.length)) print('Width = {}'.format(rect.width)) print('Area = {}'.format(rect.area))
Выход:
Length = 5 Width = 4 Area = 20 Length = 6 Width = 8 Area = 20
- В приведенном выше примере мы замечаем, что область прямоугольника –
20
Когда длина и ширина5
и4
соответственно. Но площадь прямоугольника остается прежней (20
) даже после изменения значений длины и ширины до6
и8
соответственно. Следовательно, мы, чтобы гарантировать, что Python вычисляет значения правильно, нам нужно использовать
@Property
декоратор.@Property
Является ли встроенный декоратор в Python, который позволяет вам легко добраться до доступа до доступа и методов установки.
Давайте посмотрим на решение нашей проблемы.
Решение
class Rectangle(object): # Defining a method def __init__(self, length, width): self.length = length self.width = width # Using property to calculate area of rectangle @property def area(self): return self.length * self.width rect = Rectangle(5, 4) print('Length = {}'.format(rect.length)) print('Width = {}'.format(rect.width)) print('Area = {}'.format(rect.area)) print() # Changing the length and breadth of rectangle rect.length = 6 rect.width = 8 print('Length = {}'.format(rect.length)) print('Width = {}'.format(rect.width)) print('Area = {}'.format(rect.area))
Выход:
Length = 5 Width = 4 Area = 20 Length = 6 Width = 8 Area = 48
Вывод
Таким образом, в этой статье вы узнали основные Различия между атрибутом и имуществом в Python Отказ Я надеюсь, что это помогло вам понять
- «Каковы различные типы атрибутов в Python?»
- «Что такое недвижимость в Python»?
Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных учебных пособий. Счастливое обучение! 📚
Автор: Шубхам Сайон Соавтор: Раши Агарваль
Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.
Получите свою копию Python One-listers здесь.
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @: