-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass
More file actions
92 lines (65 loc) · 2.47 KB
/
class
File metadata and controls
92 lines (65 loc) · 2.47 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
class Calculator:
def setdata(self, first, second): #setdata라는 이름의 메소드
self.first=first
self.second=second
def add(self):
return self.first+self.second
a= Calculator()
a.setdata(5,8)
print(a.first, a.second)
print(a.add())
b= Calculator()
b.setdata(11,13)
print(b.add())
클래스 안의 함수는 메소드라고 함. 클래스 밖의 함수는 그냥 함수
o.setdata(3,7)
print(o.first)
print(o.second)
a=Calculator()
b=Calculator()
a.setdata(3,7)
b.setdata(4,8)
print(a.first, a.second)
print(b.first, b.second)
class Calculator:
def __init__(self,first,second):
self.first=first
self.second=second
def setdata(self,first,second):
self.first=first
self.second=second
def add(self):
result=self.first+self.second
return result
def mul(self):
result=self.first*self.second
return result
a=Calculator()
a.setdata(8,5)
print(a.add())
print(a.mul())
클래스란? 비슷한 속성을 가진 객체를 묶는 큰 틀. 파이썬과 같은 객체지향 언어에서 핵심적인 부분을 차지함.
class Car에서 Car이 클래스라면 def__init__(self, brand, color, year)에서 brand color year은 각각 Car클래스의 인스턴스가 됨.
클래스 메소드를 생성할땐 첫번째인수로 self를 써줘야 해당 메소드를 인스턴스의 메소드로 쓸수있게됨
(self의 역할이 메소드를 부르는 객체가 해당 클래스의 인스턴스인지 확인을 위한 장치, 객체 내의 정보를 저장하거나 불러오는건 덤.)
객체를 이용하여 메소드를 호출하게 되는데, get_info()라는 메소드는 self로 하여금 my_car에 해당하는 값을 리턴하는 역할을 수행.
init 메소드는 인스턴스 생성 초기에 변수를 지정해주는 것을 도와주는 역할로,
초기화 메소드 혹은 생성자라고 불리며 인스턴스를 만들 때 함께 선언해주어야 함.새로운 인스턴스가 만들어질 때 함께 호출됨.
부모 클래스의 메소드와 같은 이름을 가진 메소드를 자식 클래스에서 새롭게 구현하는 것을 메소드 오버라이딩이라고 함.
#오류 예외처리
try:
실행할 코드
except 에러이름 as 메시지변수:
에러 발생 시 실행할 코드
else:
~~
#오류 회피
try:
~~
except ~:
pass #아무일도 없었던것처럼 아무 오류 메시지 뜨지않고 넘어감
#오류 발생(인위적으로)
try:
raise 에러명
except 에러명(위와일치):
~~