필자는 기본적으로 오라클 시퀀스의 파이썬 구현 인 객체를 가지고 있습니다. 여러 가지 이유로 오라클 시퀀스의 차세대를 구해야하고 기본 키를 결정할 때 수동으로 카운트 한 다음 레코드가 삽입되면 시퀀스를 업데이트해야합니다.속성이 중요하지 않은 초기화를 수행해야합니까?
그래서 여기 내 객체가 수행하는 단계입니다 :
- 처음 없음으로 설정
key_generator
속성, 객체를 구축합니다. - 데이터베이스에서 첫 번째 값을 가져 와서 itertools.count로 전달하십시오.
- 해당 생성자에서
next_key
속성을 사용하여 키를 반환합니다.- 건너 뛰기 1 단계와 생성자의 2 단계를 수행합니다
는 내가 세 가지 가능성을 생각할 수있는 2 단계 작업을 수행하는 위치에 대한 좀 확실 해요. 나는 이런 종류의 초기화를 생성자에서하는 것을 싫어하기 때문에이 악을 발견한다.
next_key
을 처음 호출 할 때 데이터베이스에서 시작 키를 가져옵니다. 속성은 일반적으로 사소한 것으로 가정되기 때문에 나는이 악을 발견했습니다.next_key
을get_next_key
방법으로 만드십시오. 속성은 여기에서 더 자연스럽게 보이기 때문에 나는이 것을 싫어합니다.
어느 것이 3 가지 중 적은 것입니까? 나는이 속성에 대한 첫 번째 호출 만 데이터베이스 쿼리를 생성하기 때문에 # 2쪽으로 기울고 있습니다.
또 다른 문제는 "정확히 얼마나 비싸게 계산합니까?" 어쨌든 다른 경로를 결정했습니다. 나는 이것을 별도의 답변으로 게시 할 것이지만,이 점에있어서 이것이 가장 좋은 대답이라고 생각하기 때문에 이것을 받아 들일 것입니다. –