У меня есть класс с одним методом, который выводит dict
. Классу требуется file_path для создания экземпляра. Методу требуется строковый параметр для вывода dict. Вот какой-то псевдокод.
class A():
def __init__(self, file_path):
self.file_path = file_path
def create_dict(self, param):
#uses self.filepath
#creates a dict called data. The dict contains 2 keys and each key contains a list. The first list is a list of strings and the second a list of integers
return data
Процедура создания этого dict
, на мой взгляд, не имеет значения. Окончательный вывод выглядит следующим образом:
data = {'Key1': ['String1', 'String2', 'String3',....], 'Key2': [1,2,4,....]}
Когда я начал реализовывать этот класс, я заметил, что вместо этого хочу, чтобы data
был объектом. Этот объект будет иметь методы data.printKey1()
и data.printKey2()
, которые выведут следующее:
>>> data.printKey1()
String1
String2
String3
...
>>>data.printKey2()
1
2
4
Теперь я застрял, потому что я действительно не хочу реконструировать всю процедуру, с помощью которой генерируется data
, но мне нужно, чтобы это был объект.
Я не уверен, следует ли мне использовать наследование, включение класса или < href="https://stackoverflow.com/questions/49528586/redefining-a-subclass-sort-of-structure-using-inheritance">composition (или какая-то другая конструкция, о которой я не знаю). Теоретически, что лучше всего использовать здесь? Как я могу сгенерировать этот новый класс/объект data
без необходимости переделывать всю процедуру, содержащуюся в методе create_dict
?
Спасибо
Method
? (подсказка: в основном другой «класс с инициализацией и одним методом»). Извините, но вы все еще догматичны. - person bruno desthuilliers   schedule 01.06.2018