TG Telegram Group & Channel
Python: задачки и вопросы | United States America (US)
Create: Update:

Когда мы объявляем класс и добавляем атрибуты в slots, Python не создает для этого класса обычный словарь. Вместо этого он использует фиксированное количество слотов для хранения атрибутов.

При создании экземпляра класса Python не создает для объекта словарь атрибутов, а использует структуру с фиксированными слотами:


class Point:
slots = ['x', 'y'] # Только два атрибута: x и y

def __init__(self, x, y):
self.x = x
self.y = y

# Создаем объект
p = Point(3, 4)

# Доступ к атрибутам
print(p.x) # 3
print(p.y) # 4

# p.z = 5 # AttributeError: 'Point' object has no attribute 'z'


Попытка присвоить атрибут z, которого нет в slots, вызовет ошибку, поскольку его нет в "разрешенных" атрибутах класса.

Когда мы объявляем класс и добавляем атрибуты в slots, Python не создает для этого класса обычный словарь. Вместо этого он использует фиксированное количество слотов для хранения атрибутов.

При создании экземпляра класса Python не создает для объекта словарь атрибутов, а использует структуру с фиксированными слотами:


class Point:
slots = ['x', 'y'] # Только два атрибута: x и y

def __init__(self, x, y):
self.x = x
self.y = y

# Создаем объект
p = Point(3, 4)

# Доступ к атрибутам
print(p.x) # 3
print(p.y) # 4

# p.z = 5 # AttributeError: 'Point' object has no attribute 'z'


Попытка присвоить атрибут z, которого нет в slots, вызовет ошибку, поскольку его нет в "разрешенных" атрибутах класса.


>>Click here to continue<<

Python: задачки и вопросы




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)