Привет и спасибо, что прочитали это. В данный момент я работаю над своим заданием для прохождения практики. Мое задание выполнено в Python, и я должен использовать объектно-ориентированное программирование, но это не совсем моя сильная сторона. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что у меня есть несколько классов с различными типами данных, но я не могу получить доступ к определенным данным, которые мне нужно использовать. Посмотрите ниже на часть кода, который я сделал до сих пор.
class Field:
def __init__(self, name, address, field_type, repeat=" ", field_size="[31:0]", data=None):
if field_type is not "R" and field_type is not "W" and field_type is not "RMW":
print("Error: field type is invalid")
else:
self.name = name
self.address = address
self.field_type = field_type
self.repeat = repeat
self.field_size = field_size
self.data = data
def show(self):
print("%-10s %-10s %-10s %-10s %-10s" % (
self.name, self.field_size, hex(self.address), self.repeat, self.field_type))
class Regmap:
def __init__(self, name, address, repeat=""):
self.name = name
self.address = address
self.repeat = repeat
class TestRegmap1(Regmap):
def __init__(self, name, address, repeat=""):
super().__init__(name, address, repeat)
self.field1 = Field("veld1", 0x00, "RMW", "4s4"),
self.field2 = Field("veld2", 0x80, "RMW", "64s64"),
self.field3 = Field("veld3", 0xc0, "RMW"),
self.field4 = Field("veld4", 0xD0, "W"),
self.field5 = Field("veld5", 0xE0, "RMW")
regmap1 = TestRegmap1("regmap1", 0x00)
Данные внутри класса "testregmap1" - это пример кода, который будет сгенерирован. Я ничего не могу с этим изменить.
Внутри моего родительского класса "regmap" я пытаюсь создать функцию, которая будет печатать все мои разные поля, созданные в классе "testregmap1". Я хочу, чтобы функция все еще работала, даже если внутри класса "testregmap1" больше или меньше данных. Я чувствую, что не знаю достаточно о OOP и Python, чтобы понять это, и я не так много могу найти об этой конкретной проблеме c.
Если у вас есть какая-либо информация, которая может помочь пожалуйста, дайте мне знать. Заранее спасибо.