Я пытаюсь работать с простым классом, который заполняет некоторые списки, а затем пытается извлечь эту информацию обратно, что-то вроде:
class Foo(object):
def __init__(self):
self.src = []
self.values = []
def addItems(self, name, val):
self.src.append(name)
self.values.append(val)
def getItem(self, item):
for i, x in enumerate(self.src):
if x == item:
return self.src[i], self.values[i]
Чтобы использовать этот класс, я сначала должен создать его экземпляр, Foo()
, и только потом начинайте добавлять и извлекать объекты.
a = Foo()
a.addItems('A', '1')
a.addItems('B', '2')
a.src # ['A', 'B']
a.values # ['1', '2']
a.getItem('A') # ('A', '1')
Есть ли способ добавить элементы без предварительной инициализации класса?Что-то вроде Foo.addItems('A', '1')
(это дает TypeError: addItems() missing 1 required positional argument: 'val'
).
Я видел другие похожие посты, используя @staticmethod
, но не мог понять, как заставить это работать в этом примере.