Я работаю над симулятором эпидемии c. Однако я столкнулся с проблемой: мне нужно создать матрицу моего пользовательского класса Location()
, который имеет метод init (), равный __init(self, x_coords, y_coords, population, name)__
. Все эти параметры должны быть случайными (исключая имя).
Единственная проблема, с которой я сталкиваюсь, - это попытка создать матрицу / карту этих пользовательских местоположений, которые я бы использовал в своей симуляции.
Я пробовал:
num_rows = 5
num_cols = 5
row = [Location() for i in range(num_rows)]
mat = [list(row) for i in range(num_cols)]
mat[0][0] = Location(...)
num_rows = 5
num_cols = 5
row = [Location() for i in range(num_rows)]
mat = [list(row) for i in range(num_cols)]
mat.append(Location(...))
w, h = 5, 5
Matrix = [[Location() for x in range(w)] for y in range(h)]
Matrix.append(Location(...))
w, h = 5, 5
Matrix = [[Location() for x in range(w)] for y in range(h)]
Matrix[0][0] = Location(...)
Все они сталкиваются с одной и той же ошибкой типа: «Ожидаемый тип« List [Location] »(соответствует generi c type« _T »), вместо него получено« Location »."
Я не работал с Python очень долго, поэтому я не знаю никаких обходных путей к этому, и я не нашел в Интернете ничего, чтобы помочь с этим.
Мой полный код выглядит сейчас так:
import random
# Location class
class Location:
def __init__(self, x_coords, y_coords, population, name):
self._x_coords = x_coords
self._y_coords = y_coords
self._population = population
self._name = name
# GETTERS VVVV
def get_x_coords(self):
return self._x_coords
def get_y_coords(self):
return self._y_coords
def get_population(self):
return self._population
def get_name(self):
return self._name
# Need to initialize a matrix of Location() here