나는 파이썬에서 다음을 수행하는 프로그램을 가지고있다 :파이썬의 자세한 __init__ 메소드가 잘못 되었습니까?
사용자는 폴더의 이름을 입력한다. 그 폴더 안에 다른 확장자를 가진 8-15 개의 .dat 파일.
프로그램은 이러한 dat 파일을 열고 SQL 데이터베이스에 입력 한 다음 사용자가 데이터베이스에 대한 다른 변경 사항을 선택할 수 있도록합니다. 그런 다음 데이터베이스가 .dat 파일로 다시 내보내집니다. 수행 할 수있는 약 5-10 가지의 조작이 있습니다.
내가 설계 할 때 계획 한 방식은 파일 그룹마다 표준 클래스를 만드는 것이 었습니다. 사용자는 폴더의 이름과 특정 속성 (파일 이름, 파일 사전, 파일 버전 (다른 버전) 등)이있는 객체를 작성하게됩니다. 이러한 특성을 결정하려면 이러한 파일 중 일부를 열고 파일 이름을 읽어야합니다.
__init__
방법으로이 작업을 수행해야합니까? 또는이 작업을 __init__
메서드에서 호출되는 다른 인스턴스 메서드에서 수행해야합니까? 또는이 메소드가 다른 곳에 있어야하며 속성이 프로그램의 다른 곳에서 필요할 때만 호출해야합니까?
나는 이미 자바로이 프로그램을 작성했다. 클래스의 다른 메서드를 호출하여 객체의 속성을 설정하는 생성자가 있습니다. 그러나 나는 파이썬에서 표준적인 실천이 무엇인지 궁금해했다.
본질적으로 나는 "직업"으로 분류 될 수있는 파일 그룹을 가지고 있습니다. 다른 기능은이 작업에 대해 다른 작업을 수행하여 프로그램의 원하는 결과를 생성합니다. 그래서 나는 그것을 수업으로 가장 잘 유지한다고 생각한 이유입니다. –
그리고이 것 같아 당신이 제안하는 것입니다 : __init의 __ (자기, 폴더 이름) : self.filelist = getfilelist (...); self.fileversion = getfileversion (...); 등? 메소드 중 하나가 비싸고 특정 인스턴스에서만 필요하다는 점을 제외하면? –
이것이 코드에서 수행중인 것이라면 대신 [지연 속성] (http://stackoverflow.com/q/3012421/1235039)을 사용해야합니다. 이를 수행하는 방법은 여러 가지가 있습니다. 요구 사항과 선호도에 따라 다릅니다. – aquavitae