파이썬에서 선형 합동 생성기를 작성하려고하고 있는데 code on Wikipedia이라는 작은 조각을 발견했지만 그것을 이해하는 데 약간의 어려움이 있습니다. 코드는 다음과 같습니다 :파이썬에서의 기능
def lcg(modulus, a, c, seed=None):
if seed != None:
lcg.previous = seed
random_number = (lcg.previous * a + c) % modulus
lcg.previous = random_number
return random_number/modulus
lcg.previous = 2222
내 문제는 "lcg.previous
"입니다. 함수가 완료되었다는 것을 알아 채면 lcg.previous
의 값이 업데이트되고 저장됩니다. 함수 lcg()의 멤버 변수로 선언 되었습니까? 아니면 실제로 파이썬의 모든 함수에 대해 설정된 일종의 기본값입니까?
고맙습니다.
코드 스 니펫을 발견 한 곳의 참조를 제공 할 수 있습니다. – Alex
모든 관련 코드를 복사하지 않았으며 lcg.previous는 함수 정의 바로 다음에 시작 값으로 설정되어 있습니다. –
죄송합니다. 편집 된 버전을 업로드하는 일이 있습니다. 편집 해 주셔서 감사합니다. – Xuan