py/Eternal Return 분석
ListFilterData(*conditions, **name_dic) - conditions 이름 바꾸기
jm_p_op
2023. 12. 6. 01:02
- conditions에 해당되는 list추출
- conditions에서 간단한 산수 추가 => 이름이 길어짐 => 이름 변경필요 => kwargs사용
- kwargs값의 key값이 string 값으로 넣어줄수가 없다(*,+등등 사칙연산을 변수명으로 쓸수없음)=>unpacking으로 집어 넣기
class ListFilterData(DataClass):
def __init__(self, *conditions, **name_dic):
"""1.must name_dic.value not in conditions
2. only */+-()
"""
self.name_dic = name_dic
self.conditions = {}
for condition in conditions:
self.conditions[name_dic.get(condition, condition)] = []
def add_data(self, user_data):
filter_name = list(self.name_dic.values())
for condition in self.conditions:
if condition not in filter_name:
self.conditions[condition] += [user_data.get(condition, 0)]
for condition_caculate in self.name_dic:
condition_list = re.split(re_caculater, condition_caculate)
for i, index in enumerate(condition_list):
if index.isdigit():
pass
elif index in calculater:
pass
else:
condition_list[i] = str(user_data[index])
condition_list = "".join(condition_list)
self.conditions[self.name_dic[condition_caculate]] += [eval(condition_list)]
dic_name = {"10*gameRank": "gameRank10"}
data_class = ListFilterData(
"playTime", "mmrGainInGame", "gameRank", "10*gameRank", **dic_name
)