Чтобы ID
был атрибутом экземпляра, вам нужно использовать self
(именно так Python знает, что именно вы намерены)
, поэтому измените код на:
class MatrixSquare:
def __init__(self):
'Contains primary shapes and partial or full constructed shapes'
# initialize row, col
self.row=""
self.col=""
self.ID=[self.row,self.col]
Тот же принцип будет применяться для любых обновлений или использования из любого метода экземпляра
Однако, из вашего кода при обновлении col
и row
ID
автоматически обновляться не будет (вынеобходимо написать что-то, что говорит Python, чтобы он обновлялся каждый раз, когда вы обновляете col
или row
; например, с помощью установщика)
Это может работать:
class MatrixSquare:
def __init__(self):
'Contains primary shapes and partial or full constructed shapes'
# initialize row, col
self._row=""
self._col=""
self.ID=[self._row,self._col]
@property
def col(self):
return self._col
@property
def row(self):
return self._row
@col.setter
def col(self,col):
self._col = col
self.ID = [self._row,self._col]
@row.setter
def row(self,row):
self._row = row
self.ID = [self._row,self._col]