Чтобы исправить ошибку AttributeError: объект nonetype не имеет атрибута shape, проверьте, имеет ли объект значение None, прежде чем обращаться к его атрибутам. Убедитесь, что объект, к атрибуту формы которого вы пытаетесь получить доступ, не имеет значения None.

AttributeError: объект «nonetype» не имеет атрибута «shape» возникает при попытке доступа к атрибуту формы объекта, который имеет значение None. Доступ к атрибуту формы со значением None вызывает ошибку этого типа.
Воспроизведение ошибки
В этом случае, когда вы пытаетесь получить доступ к атрибуту объекта, который не имеет этого атрибута, в сообщении об ошибке говорится, что объект, к которому осуществляется доступ, является объектом NoneType и что этот объект не имеет атрибута формы.
|
1 2 3 4 5 6 7 |
def get_shape_of_object(obj): return obj.shape value = None print(get_shape_of_object(value)) |
Выход
|
1 |
AttributeError: 'NoneType' object has no attribute 'shape' |
Как исправить AttributeError: объект nonetype не имеет атрибута shape
Чтобы устранить AttributeError программным способом, используйте оператор is, чтобы проверить, имеет ли объект значение None, и если да, то не пытайтесь получить доступ к атрибуту формы.
|
1 2 3 4 5 6 7 8 |
def get_shape_of_object(obj): if obj is None: return None return obj.shape value = None print(get_shape_of_object(value)) |
Выход
|
1 |
None |
Атрибут shape в Python — это кортеж, показывающий размеры массива. Это свойство класса ndarray(n-мерный массив), входящего в состав библиотеки numpy.
Давайте посмотрим на пример атрибута shape в действии.
|
1 2 3 4 5 |
import numpy as np arr = np.array([[19, 21], [11, 46], [18, 29]]) print(arr.shape) |
Выход
|
1 |
(3, 2) |
Вы можете видеть, что атрибут shape возвращает размеры(3, 2), что может быть дополнительно полезно для понимания структуры массива и выполнения операций над ним.
