Я пытался превратить этот сценарий из Java в Python, но я столкнулся с некоторыми техническими проблемами, чтобы понять код Java.class Table:
def __init__(self, name, number_tuple, size_tuple, nature):
self.__name = name
self.__number_tuple = number_tuple
self.__size_tuple = size_tuple
self.__nature = nature
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
def get_number_tuple(self):
return self.__number_tuple
def set_number_tuple(self, number_tuple):
self.__number_tuple = number_tuple
def get_size_tuple(self):
return self.__size_tuple
def set_size_tuple(self, size_tuple):
self.__size_tuple = size_tuple
def get_nature(self):
return self.__nature
def set_nature(self, nature):
self.__nature = nature
< /code>
Второй класс-это класс анализаторов, с которым мне сталкиваются проблемы с изменением его.public class Parser {
Map tables;
public Table searchTableByValue(String value) {
Map result = this.tables.entrySet().stream()
.filter(
map -> value.equals(
((Table)map.getValue()).getName()
))
.collect(
Collectors.toMap(
p -> (Integer)p.getKey(), p -> (Table)p.getValue()
));
return (Table)result.values().toArray()[0];
}
< /code>
Проблема, которую я не могу понять, чтобы преобразовать: < /p>
map -> value.equals(((Table)map.getValue()).getName()))
< /code>
Я пытался работать над Python, но я мало что сделал, код ниже < /p>
from operator import eq
from lazy_streams import stream
class Parser:
self.tables = tables
def is_equal(self, first, second):
return eq(first, second)
def search_table_by_value(self, value):
cond = list(map(self.is_equal,value, (self.tables.values()).get_name()))
result = stream(self.tables.copy().values()) \
.filter(cond) \
return result[0]
Подробнее здесь: https://stackoverflow.com/questions/727 ... -to-python