В чем разница между необъектом и объектом ?

Спросят с вероятностью 3%



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



Объекты




Почти все является объектом, включая числа, строки и функции. Объекты имеют следующие характеристики:



1️⃣Атрибуты и методы: Объекты могут иметь атрибуты (данные) и методы (функции), связанные с ними. Например, строка в Python является объектом, у которого есть методы, такие как .upper(), .lower(), .split() и т.д.

2️⃣Идентичность, тип и значение: У каждого объекта есть уникальный идентификатор (который можно получить с помощью функции id()), тип (который можно узнать с помощью функции type()) и значение. Значение объекта может изменяться или оставаться неизменным в зависимости от типа объекта (например, списки изменяемы, а строки — нет).

3️⃣Создание экземпляров: Объекты могут быть экземплярами классов. Это позволяет создавать сложные структуры данных и использовать объектно-ориентированное программирование.



Пример объекта:

class Dog:

def __init__(self, name):

self.name = name



def bark(self):

return f"{self.name} says woof!"



my_dog = Dog("Buddy")

print(my_dog.bark()) # Выведет: Buddy says woof!




Необъекты (или Примитивные типы)




Термин используется редко, так как, строго говоря, в Python все является объектом. Однако, в других языках программирования под необъектами обычно понимаются примитивные типы данных, такие как числа и строки, которые не имеют методов и атрибутов.



В контексте Python под необъектами можно подразумевать такие типы данных, которые ведут себя как примитивы в других языках, несмотря на то, что они тоже объекты в Python. Например, числа (int, float), строки (str), булевы значения (bool).



Пример примитивных типов:

x = 42         # int

y = 3.14 # float

s = "hello" # str

b = True # bool



Несмотря на то, что это объекты в Python, их часто сравнивают с примитивными типами в других языках




Сравнение:




1️⃣Атрибуты и методы:

Объекты: Могут иметь атрибуты и методы (например, экземпляры классов, сложные структуры данных).

Примитивные типы: Могут иметь методы (в Python), но обычно в других языках они не имеют методов или атрибутов.



2️⃣Изменяемость:

Объекты: Могут быть изменяемыми (например, списки, словари) или неизменяемыми (например, кортежи).

Примитивные типы: В Python числа, строки и булевы значения неизменяемы.



3️⃣Использование:

Объекты: Используются для представления сложных данных и логики.

Примитивные типы: Используются для представления простых значений и часто служат строительными блоками для объектов.



Объекты могут иметь атрибуты и методы, а также могут быть экземплярами классов. Примитивные типы, такие как числа и строки, хотя и являются объектами в Python, ведут себя как простые значения и часто неизменяемы.



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых