1 생성자
객체를 생성할 때 자동적으로 인스턴스 변수를 초기화하기 위해 호출되는 함수이다.
객체를 생성할 때 초기화를 위해 가장 먼저 실행된다.
생성자를 선언해주지 않아도 실행되며 기본적으로 모든 클래스가 생성자를 1개씩 갖고 있다.
# 빈 클래스를 만들고 싶을 때
class A:
A() # 에러
위와 같이 코드 작성시 에러가 발생하는 것을 볼 수 있다.
# 따라서 다음과 같이 pass를 작성해준다.
class A:
pass
A() # 정상적으로 작동
+plus pass : 실행 할 것이 아무 것도 없다는 것을 의미한다. 따라서 pass 를 만나게 되면 아무 동작을 하지 않고 다음 코드를 실행한다.
⊙ 기본 생성자
클래스가 작성할 때 컴파일러가 자동으로 생성해주는 함수이다. 형태는 다음과 같고 이는 생략이 가능하다.
class 변수명:
def __init__(self):
pass
# 여기서 self는 객체 자신을 의미하며 생성자 정의 시 첫번째 파라미터에 넣어줘야한다.
# 다른 이름으로 사용해도 되지만 관례적으로 self를 사용한다.
++ 메서드 호출방식으로 bound와 unbound 방식이 있다.
메서드를 정의할 때 self가 자동으로 bounding되어 있느냐의 차이로 매개변수에 self 이외의 변수가 필요로 하면 unbound 방식, 필요가 없다면 bound 방식이다.
# 생성자를 이용해서 인스턴스 변수 생성 예금계좌명, 계좌번호 , 잔액, 비밀번호
# 입금, 출금, 예금조회
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
|
class Account:
def __init__(self,name,num,money,pw):
self.acc_name = name
self.acc_num = num
self.acc_balance = money
self.acc_pw = pw
print("계좌개설ok")
def with1(self,money): # 출금
if money <= self.acc_balance:
self.acc_balance -= money
return money
else:
return "잔액부족"
def posit(self,money): # 입금
self.acc_balance += money
print("입금액:",money)
# 영희 계좌
yunghee = Account("yunghee","1111-1111",10000,1234)
print(yunghee.acc_name)
yunghee.posit(20000)
print("출금 :",yunghee.with1(50000))
|
cs |
2 소멸자
객체를 소멸(삭제)할 때 호출되는 메서드로 다음과 같이 사용한다.
1
2
3
4
5
6
7
8
9
|
class B:
def __init__(self):
print("객체생성")
def __del__(self):
print("객체소멸")
b1 = B()
del b1 # del 이용해서 지우면 객체 소멸 출력
# 만약 del메서드 내에 pass로 입력했으면 아무것도 출력X
|
cs |
def __del__ 로 선언 후 클래스 외부에서 del 을 이용해 객체를 소멸시켜줄 수 있다.
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 예외처리(try~ except) / 예외처리 클래스 (Exception) (0) | 2021.04.03 |
---|---|
[Python 기초] 파이썬 클래스 - 상속, 다중 상속 (0) | 2021.04.03 |
[Python 기초] 파이썬 클래스(class)와 인스턴스(instance) (0) | 2021.04.02 |
[Python 기초] 파이썬 함수(Funtion) - 사용자 정의 함수 - 2 (0) | 2021.04.02 |
[Python 기초] 파이썬 함수(Funtion) - 내장함수 , 사용자 정의 함수 - 1 (0) | 2021.04.02 |
댓글