참고 : 클래스를 이용하여 데이터 입력하고 쓰기
2018. 7. 4. 19:31
- 엑셀형태로 구성하고 싶은 데이터가 있다고 가정하고, 칼럼들을 클래스의 필드로 만든다.
- 상수를 제외하고, 생성자(def __init(self, 받,을,변수):로 정의하여 클래스명( , , , )로 인스턴스생성과 동시에 입력받도록 해준다.
*만약, 상수로 먼저 선언하고서, 인자로 받아도 되고, 안받아도 되도록 설정하려면,
(1) 인자로서 wage_per_hour = None으로 default로 둔다.
(2) 기본적으로 self.wage_per_hour = wage_per_hour는 바로 입력하지 않고,
(3) if wage_per_hour: 를 통해 default인 None이 아닌 값이 넘어와서 True를 가질 때,
상수였던 필드(wage_per_hour = 7530) 에 self.wage_per_hour = wage_per_hour를 대입하도록 한다.
- 칼럼 중에 함수식이 필요한 것은, 클래스 내부의 함수로 정의하여 self.필드들을 이용해서 (return에다가) 계산식을 만든다.
ex> 퇴근시간 - 출근시간 = 근무시간 - 만약, 함수식 계산을 한 칼럼에 또 함수식을 써야하는 경우에는
클래스에 정의된 함수식을 또 호출하는 함수를 생성하면 된다. 필드와 마찬가지로 return에다가 self.함수()로 호출해서 계산식을 만든다.
ex> 일당 = 근무시간(퇴근시간 - 출근시간) * 시급 - 본격적으로, 데이터를 관리하기 위해서, 빈 리스트를 생성하자.
ex> employee_list = [] or employee_list = list() - 빈 리스트에다가 인스턴스를 생성함과 동시에 append로 리스트에 추가 해주자.
ex> employee_list.append( 클래스( 필드1, 필드2, 필드3, 필드4) )
employee_list.append( 클래스( 필드1, 필드2, 필드3, 필드4) ) ... - 리스트에 채워진 인스턴스를 <리스트를 이용한 for문>을 통해, 하나씩 인스턴스를 받아서 .필드 or .함수()에 접근하여
print()로 확인하는데, {}\t{}\t .format( 인스턴스.필드1, 인스턴스.필드2, ,) 형식으로
한 줄로 출력해보자. - csv파일로 쓰고 싶다면,
(1) for문 전에 open() '파일명', 'w' 이 들어갔다.
(2) for문 전에 csv_file.write( 칼럼명 첫줄 \n')
(3) for문 안에 print-> csv_file.write 로 고치고, \t 를 콤마(,)로 수정하고, \n줄바꿈 해주기
(4) for문 끝나면 close()
'빅데이터 관련 프로그래밍 > Python3 기초 및 업무자동화' 카테고리의 다른 글
10. 다수의 인스턴스 생성을 위한 엑셀에 인자 입력-> csv로 저장 -> 파일읽기-> 인스턴스 생성 -> 파일 쓰기 (0) | 2018.07.04 |
---|---|
9. 문자열 클래스의 함수(split과 join / replace / upper와 lower / startswith와 endswith) (0) | 2018.07.04 |
8. 클래스(class)와 인스턴스(instance) 및 생성자 (0) | 2018.07.04 |
7. 파일 쓰기( TXT /CSV ) (0) | 2018.07.04 |
6 . 함수 - (기본사용법 /구구단출력 / for문 속 함수 / default인자 / 유의점, scope / 기본 제공함수) (0) | 2018.07.03 |