[Python 3]
Мне нравится ndarray
, но я нахожу это раздражающим в использовании.
Вот одна проблема, с которой я сталкиваюсь.Я хочу написать class Array
, который унаследует большую часть функциональности ndarray, но будет иметь только один способ создания экземпляров: массив с нулевым заполнением определенного размера.Я надеялся написать:
class Array(numpy.ndarray):
def __init__(size):
# What do here?
Я хотел бы вызвать super().__init__
с некоторыми параметрами, чтобы создать заполненный нулями массив, но он не будет работать, поскольку ndarray
использует глобальную функцию numpy.zeros
(а не конструктор) для создания массива, заполненного нулями.
Вопросы:
Почему ndarray во многих случаях использует глобальные (модульные) функции вместо конструкторовслучаи?Это большое раздражение, если я пытаюсь использовать их в объектно-ориентированной среде.
Какой лучший способ определить class Array
, который мне нужен?Стоит ли просто вручную заполнять ndarray
нулями, или есть ли способ повторно использовать функцию zeros
?