일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- svn: Can't find a temporary directory: Internal error
- burpsuite
- 윈도우 로그인 오류
- sftp 사용법
- 리눅스 활용법
- 목록 광고
- 포트 설정
- 계정 잠금 해제
- sleep 명령어
- 블로그 광고 설정
- 윈도우 해결 방법
- 엑셀 문자열 처리
- ##_revenue_list_lower_##
- AWS
- 버프스위트
- 파일업로드다운로드
- 계정 잠금
- shell 스크립트
- 명령어 튜토리얼
- 셀 값 변환
- Burp Suite
- 버프슈트
- 광고 삽입 방법
- 코드 수정 가이드
- 계정 잠금 임계값
- ##_revenue_list_upper_##
- SFTP
- 비밀번호 복구
- root로그인안됨
- pam_tally2.so
- Yesterday
- Today
- Total
13. 파이썬(Python) 클래스(Class)2 본문
클래스를 사용해서 기본 학사관리 예제를 만들어 보겠습니다.
기본 학사관리 예제1(SetMember : o, __init__ : x)
>>> class Student1:
def SetMember(self, number, name, age, major):
self.number = number # 학번
self.name = name # 이름
self.age = age # 나이
self.major = major # 전공
def ShowInfo(self):
print("====================")
print("학번 : %s" %self.number)
print("이름 : %s" %self.name)
print("나이 : %s" %self.age)
print("전공 : %s" %self.major)
print("====================")
기본적으로 학번, 이름, 나이, 전공을 넣도록 만들었습니다.
>>> stu1 = Student1()
>>> stu1.ShowInfo()
====================
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
stu1.ShowInfo()
File "<pyshell#10>", line 9, in ShowInfo
print("학번 : %s" %self.number)
AttributeError: 'Student1' object has no attribute 'number’
에러가 나는 이유는 값이 들어가 있지 않아서 그렇습니다.
값을 넣어 보겠습니다.
>>> stu1.SetMember(20171020, "홍길동", 20, "Computer")
>>> stu1.ShowInfo()
====================
학번 : 20171020
이름 : 홍길동
나이 : 20
전공 : Computer
====================
결과가 잘나오는 것을 확인 할 수 있습니다.
객체를 생성 하고나서 바로 ShowInfo()함수를 사용하는 경우가 있는데 그렇게 되면 계속 에러 구문을 발생시킬 것입니다. 이것을 해결하기 위해서는 앞서 배웠던 __init__를 사용하면 해결됩니다.
기본 학사관리 예제2(SetMember : x, __init__ : o)
>>> class Student2:
def __init__(self, number, name, age, major):
self.number = number # 학번
self.name = name # 이름
self.age = age # 나이
self.major = major # 전공
def ShowInfo(self):
print("====================")
print("학번 : %s" %self.number)
print("이름 : %s" %self.name)
print("나이 : %s" %self.age)
print("전공 : %s" %self.major)
print("====================")
>>> stu2 = Student2()
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
stu2 = Student2()
TypeError: __init__() missing 4 required positional arguments: 'number', 'name', 'age', and 'major’
앞에서 봤듯이 __init__는 필수적으로 값을 채워줘야 하기 때문에 값을 넣어 주지 않으면 이렇게 에러 구문을 발생시킵니다.
>>> stu2 = Student2(20170002, "은길홍", 21, "Computer")
안에 값을 채워 넣으면 에러가 발생하지 않는 것을 확인 할 수 있습니다.
>>> stu2.ShowInfo()
====================
학번 : 20170002
이름 : 은길홍
나이 : 21
전공 : Computer
====================
결과가 잘 출력 됩니다.
__init__를 활용해서 값을 넣지 않으면 객체가 생성되지 않는 것을 확인했습니다. 하지만 값을 잘 못 입력하면 값을 수정을 못하고 다시 객체를 생성해야 되는 불편함이 생겼습니다. 그걸 해결하기 위해서 SetMember()을 추가 하면 됩니다.
기본 학사관리 예제3(SetMember : o, __init__ : o)
>>> class Student3:
def __init__(self, number, name, age, major):
self.number = number # 학번
self.name = name # 이름
self.age = age # 나이
self.major = major # 전공
def SetMember(self, number, name, age, major):
self.number = number # 학번
self.name = name # 이름
self.age = age # 나이
self.major = major # 전공
def ShowInfo(self):
print("====================")
print("학번 : %s" %self.number)
print("이름 : %s" %self.name)
print("나이 : %s" %self.age)
print("전공 : %s" %self.major)
print("====================")
>>> stu3 = Student3(20170003, "홍길순", 20, "Computer")
>>> stu3.ShowInfo()
====================
학번 : 20170003
이름 : 홍길순
나이 : 20
전공 : Computer
====================
이름과 나이가 잘못 입력되었다면
>>> stu3.SetMember(20170003, "임꺽정", 21, "Computer")
SetMember라는 함수를 사용해서 변경할 수 있습니다.
>>> stu3.ShowInfo()
====================
학번 : 20170003
이름 : 임꺽정
나이 : 21
전공 : Computer
====================
만약 틀린 것이 한가지 라면 수정하는 부분을 각각 SetNumber(), SetName(), SetAge(), SetMajor()같은 함수를 만들어서 사용하시면 됩니다.
'Python > Python 기본 개념' 카테고리의 다른 글
15. 파이썬(Python) 같은파일, 폴더 존재유무 확인하기 (2) | 2017.11.13 |
---|---|
14. 파이썬(Python) 파일 다루기(파일 읽기, 쓰기, 추가하기) (4) | 2017.10.26 |
13. 파이선(Python) 클래스(Class)1 (0) | 2017.10.19 |
12. 파이썬(Python) 모듈(module) (0) | 2017.09.18 |
11. 파이썬(Python) IDLE 디렉터리(폴더) 위치 변경 (0) | 2017.09.04 |