carpedm20 / korail2

Korail (www.letskorail.com) wrapper for Python.
http://carpedm20.github.io/korail2/
Other
168 stars 54 forks source link

`Korail` 클래스의 `_session` 변수가 인스턴스 변수로 선언되어야 할 것 같습니다. #38

Open gim-hangil opened 1 year ago

gim-hangil commented 1 year ago

현재 Korail 클래스의 선언입니다.

class Korail(object):
    _session = requests.session()
    def __init__(self, korail_id, korail_pw, auto_login=True, want_feedback=False):
        self.korail_id = korail_id
        ...

이렇게 _session이 클래스 변수로 선언되어 있어 서로 다른 객체가 같은 세션을 공유하게 됩니다. 이는 실제 로그인 되어있는 사용자의 아이디와 Korail 객체의 korail_id 필드가 다른 상황을 초래합니다.

k1 = Korail(USERID_1, PASSWD_1)
k2 = Korail(USERID_2, PASSWD_2)  # k1과 k2의 _session은 동일한 객체라 USERID_2로 다시 로그인합니다.

k1.reserve(train)  # USERID_1이 기차를 예매할 것이 예상되지만 실제로는 USERID_2가 예매하게 됩니다.

그래서 _session을 인스턴스 변수로 옮기는게 좋을 것 같은데 어떤가요?