2012-07-18 5 views
3

일반적으로 프로그램 구조만큼 구체적인 코딩 문제가 아닙니다.파일에서 기본값을 가져 오는 경우?

나는 취미 프로그래머라고 불분명하게 가르친 사람 중 하나이며, 가장 좋은 경로가 무엇인지 전혀 알지 못합니다. 나는 4 개의 변수 (name, objID, a, b)를 가진 객체를 만들고 싶다. 예를 들어 :

class myObj: 
    def __init__(self, objName, objID): 
     self.name = objName 
     self.objID = objID 
     self.a = 0 
     self.b = 0 

내 질문/문제는 OBJID의 값에 따라,이 .txt 파일에서 가져온 수 a와 b의 초기 값을 원하는 것입니다. 저는 사실 2 가지 변수 이상을 원합니다. 그리고 십여 가지 유형의 수백 가지 객체를 생성 할 것입니다.

개체가 생성 될 때마다 파일을 다시 열 것이라고 생각하므로이 클래스의 파일을 읽지 않을 것이라고 생각합니다. 목록/배열/사전으로 가져 오는 것이 싫습니다. myObj 클래스는 수십 개의 인스턴스가있는 객체 위의 객체에서만 호출되기 때문에 클래스에 전달합니다.

명확하게 - 각 'myObj'객체가 5-10 'myObj'객체와 함께 100 개의 topObj 객체를 만들 계획이며, 각 'myObj'는 시작 값 (나중에 변경됨)을 가지고 텍스트 파일에서 가져온 것입니다. 500-1000 번 읽지 않고 텍스트 파일에서 데이터를 읽을시기와 위치를 모른다.

이렇게하면 의미가 있습니다.

클래스가 하나 개의 항목을 나타내고 있기 때문에

감사합니다,
DB_ 내가이 클래스에서 파일을 읽을 수 생각하지 않는다

+2

먼저 파일에서 읽은 다음 구문 분석하고 값을 사전에 저장합니다.각 클래스를 인스턴스화 할 때 사전을 매개 변수로 전달하거나 myObj (인스턴스 변수가 아님) 내에 사전을 클래스 변수로 설정할 수 있습니다. –

+1

동일한 객체를 동일한 초기 값으로 반복해서 작성하는 경우에는 한 번만 작성한 다음 [복사] (http://docs.python.org/library/copy.html)를 참조하십시오. – ernie

답변

2

,

을 아마 그래서 당신이 가진 것없는 당신이 말했듯이 각 항목에 대해 전체 파일을 검색 할 수 있습니다.

내가하지 정말 목록/배열/사전에 당겨와 myObj로 클래스 만 위의 객체에서 호출되기 때문에 또한 인스턴스의 수십, 클래스에 전달있다.

마음에 들지 않으면 인스턴스에 저장할 필요가 없습니다.

전체 파일을 사전에 읽고 필요한 곳에 전달하십시오. 매번 사전을 복제하는 것과는 다릅니다.

topObj 그러면 사전에 모든 myObj 생성자를 제공 할 수 있습니다. 어쨌든 항상 같은 사전입니다. 나는 그것에 대해 나쁜 점을 알지 못합니다. 반대의 경우도 있습니다 : 명시 적으로 파이썬 방식입니다.

항목을 빠르게 찾을 수있는 방법이 필요하며 그렇게 할 수 있습니다.

는 topObjs의 독립적 인 하나 개의 텍스트 파일에서 텍스트 파일

에서 가져온? 그런 다음 텍스트 파일의 내용을 사전에 읽고이를 전달합니다 (로드 기능에 넣으면 원하는대로 깔끔하게 정리할 수 있습니다).

+0

+1 편의를 위해 사전을 클래스 변수로 지정하는 것이 좋습니다. –

+0

그게 내가 원하는 건데. 그것은 단지 'main'에있는 파일을 열면 각각의 topObj로 넘겨서 'myObj'에 전달할 수 있다는 것이 이상합니다. 도움 모두를 이해하십시오. –

관련 문제