Я довольно новичок в Python, и у меня возникла проблема, для которой я не мог найти прямой ответ здесь, в stackoverflow (но я думаю, что я просто недостаточно опытен для Google правильные условия). Я надеюсь, что вы можете помочьPython - Создайте переменную класса общего класса в самом классе
Рассмотрим это:
import numpy as np
class Data:
def __init__(self, data):
self.data = data
def get_dimensions(self):
return np.shape(self.data)
test = Data(np.random.random((20, 15)))
print(test.get_dimensions())
Это дает мне
(20, 15)
так же, как я хотел.
Теперь вот что я хочу сделать: Во время обработки данных мне нужно будет получить форму моих наборов данных довольно часто, особенно внутри самого класса. Тем не менее, я не хочу называть NumPy каждый раз, когда я
self.get_dimensions()
, как я думаю, что это всегда будет идти, хотя процесс анализа массива. Есть ли способ вычислить переменную формы только один раз, а затем поделиться ею внутри класса, чтобы сохранить время вычисления?
Моя проблема сложнее, так как мне нужно сначала открыть файлы, прочитать их, и из этого получить форму данных, поэтому я действительно хочу избежать этого каждый раз, когда хочу получить форму ...
Надеюсь, вы увидите мою проблему спасибо!
EDIT:
Мой вопрос уже был дан ответ, однако я хотел бы задать следить за вопрос, если это также будет эффективным:
import numpy as np
class Data:
def __init__(self, data):
self.data = data
self.dimensions = self._get_dimensions()
def _get_dimensions(self):
return np.shape(self.data)
test = Data(np.random.random((20, 15)))
print(test.dimensions)
Я спрашиваю это, потому что с помощью метода вы, ребята, Я должен вычислить его хотя бы один раз, прежде чем я смогу получить размеры. Будет ли этот способ также всегда проходить процесс расчета или хранить его только один раз?
Еще раз спасибо!
Проблема заключается в том, вы никогда не установить размеры, так что вы всегда в конечном итоге вычисления его повторно, а затем вернуть его, вместо того, чтобы использовать ранее вычисленный результат ... –
Ах, не знаю, что я мог сделай это! Наверное, я изучаю python с трудом, ха-ха. Большое спасибо! – HansSnah
@mu 無 Правильно! Фиксация этого сейчас. – Eithos