jm_p_op

ListFilterData(*conditions, **name_dic) - conditions 이름 바꾸기 본문

py/Eternal Return 분석

ListFilterData(*conditions, **name_dic) - conditions 이름 바꾸기

jm_p_op 2023. 12. 6. 01:02
  1. conditions에 해당되는 list추출
  2. conditions에서 간단한 산수 추가 => 이름이 길어짐 => 이름 변경필요 => kwargs사용
  3. 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
)

 

'py > Eternal Return 분석' 카테고리의 다른 글

비동기 병렬처리와 객체화  (0) 2024.03.19
데이터 표본 다운로드  (0) 2024.03.13
내장 함수,객체에서 kwarg을 밖에서 연결하기  (0) 2023.12.06
ERDataCleansing - 기능 추가&수정  (0) 2023.11.12
ER_datas  (0) 2023.09.28