Я иногда использую getattr(..)
для ленивого инициализации атрибутов вторичной важности непосредственно перед тем, как они используются в коде.
Сравните следующее:
class Graph(object):
def __init__(self):
self.n_calls_to_plot = 0
#...
#A lot of code here
#...
def plot(self):
self.n_calls_to_plot += 1
К этому:
class Graph(object):
def plot(self):
self.n_calls_to_plot = 1 + getattr(self, "n_calls_to_plot", 0)
Преимущество второго способа заключается в том, что n_calls_to_plot
появляется только вокруг места в коде, где он используется. Это полезно для читаемости, потому что (1) вы можете сразу увидеть, какое значение оно начинает при чтении, как оно используется, (2) оно не вводит отвлечение в метод __init__(..)
, который в идеале должен быть о концептуальном состоянии класса, а не некоторый счетчик коммунальных услуг, который используется только одним из методов функции по техническим причинам, таким как оптимизация, и не имеет ничего общего со значением объекта.
Предполагая, что ваш store.js
имеет с именем экспорт store
:
Просто используйте as
:
import {store as test} from './vuex/store.js';
Если это не сработает, ваш store.js
, вероятно, имеет только default
экспорт. В этом случае просто опустите фигурные скобки и продолжайте, как вы пытались:
import test from './vuex/store.js';