"Python 인스턴스메소드"는 클래스에 의해 생성된 인스턴스에 대해 정의된 메소드로, 인스턴스마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작하는데 사용됩니다. 인스턴스메소드는 첫번째 인자로 self를 받습니다.
아래는 인스턴스메소드를 정의하는 예시입니다.
class Person:
def __init__(self, name):
self.name = name
def introduce(self):
print(f'Hello, my name is {self.name}')
p = Person('John')
p.introduce() #Hello, my name is John
인스턴스메소드를 정의할 때는 self를 첫번째 인자로 받아야 합니다. 위 코드는 Person 클래스를 정의하며, 이를 이용해 인스턴스를 생성하고 introduce 메소드를 이용해 인스턴스의 name을 출력합니다.
아래는 인스턴스메소드를 사용하지 않는 잘못된 코드 예시입니다.
class Person:
def __init__(name):
self.name = name
def introduce():
print(f'Hello, my name is {self.name}')
p = Person('John')
p.introduce() #AttributeError: 'Person' object has no attribute 'name'
위 코드는 인스턴스메소드를 정의할 때 self를 첫번째 인자로 받지 않아 잘못된 코드입니다. 인스턴스메소드를 정의할 때 self를 첫번째 인자로 받아야 하며, 이를 생략하면 인스턴스내부의 데이터에 접근할 수 없어 오류가 발생합니다.
인스턴스메소드를 사용하면 인스턴스마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작할 수 있어 인스턴스 간에 데이터를 공유하지 않고 관리할 수 있어 유용합니다.
정리하면,
- 인스턴스와 관련된 기능을 구현할때 사용
- self를 인자로 받는다는 점을 기억
- 인스턴스마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작 가능
인스턴스메소드를 이용해 인스턴스마다 고유한 상태를 가지며 인스턴스턴스 내부의 데이터를 조작하는 실제 업무 예제를 작성해보겠습니다.
class BankAccount:
def __init__(self, account_number, balance):
self.account_number = account_number
self.balance = balance
def check_balance(self):
return self.balance
def deposit(self, amount):
self.balance += amount
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
return amount
else:
return 'Insufficient balance'
# create an instance of BankAccount
account = BankAccount(12345678, 1000)
print(account.check_balance()) #1000
account.deposit(500)
print(account.check_balance()) #1500
print(account.withdraw(2000)) #Insufficient balance
print(account.check_balance()) #1500
위 코드는 BankAccount 클래스를 정의하며, 이를 이용해 계좌번호와 잔액을 인자로 받는 인스턴스를 생성하고, check_balance, deposit, withdraw 메소드를 이용해 계좌의 잔액을 조회하고 입금, 출금 기능을 구현합니다. 이 코드를 통해 인스턴스메소드를 이용해 인스턴스마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작하는 실제 업무 예제를 이해할 수 있을 것입니다. 이 예제에서는 인스턴스마다 고유한 account_number와 balance를 가지며, check_balance, deposit, withdraw 메소드를 이용해 인스턴스의 잔액을 조회하고 입금, 출금 기능을 구현하였습니다.
정리하면,
- 인스턴스와 관련된 기능을 구현할때 사용
- self를 인자로 받는다는 점을 기억
- 인스턴스마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작 가능
- 인스턴스들이 각각 상태를 가지며, 공유하지 않음
인스턴스메소드를 이용해 객체마다 고유한 상태를 가지며 인스턴스내부의 데이터를 조작할 수 있어 실제 업무에서 매우 유용하게 사용될 수 있습니다.
인스턴스메소드를 사용할 때는 첫번째 인자로 self를 받는 것을 잊지 마시고, self를 사용해 인스턴스내부의 데이터에 접근하는 것을 확인하시면 됩니다.
'파이썬' 카테고리의 다른 글
파이썬 requests 라이브러리 이해하기 (0) | 2023.01.29 |
---|---|
파이썬 웹 크롤링 이해하기 (0) | 2023.01.28 |
파이썬 스태틱메소드 이해하기 (0) | 2023.01.26 |
파이썬 클래스메소드 (0) | 2023.01.26 |
파이썬 캡슐화, 은닉화 이해하기 (0) | 2023.01.26 |
댓글