일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Amazon Route 53
- Terraform
- Heartbleed
- Industry Week 2023
- DaemonSet
- ReplicaSet
- k8s
- staticmethod
- ConfigMap
- Backend
- classmethod
- Terraform state
- Amazon VPC
- AWS Security Hub
- mariaDB
- Amazon DynamoDB
- AWS
- DevOps
- AWS EC2
- taint
- docker
- SSL 인증서
- Kubernetis
- Amazon GuardDuty
- deployment
- Amazon RDS
- Cognito
- CI CD
- ansible
- Python
Archives
- Today
- Total
Nubes et Stella
[Python] 클래스 생성자(__init__) 본문
01. 클래스 생성자란?
클래스를 생성한 후 인스턴스를 생성할 때 자동으로 실행되는 메서드이다. 일반적으로 최초 인스턴스를 생성할 때 변수 값을 초기화하기 위해서 사용한다.
아래의 예시를 들어보면 test01이라는 클래스가 있고 그 안에 "Siuuuu"를 출력해주는 생성자가 존재한다. 생성자는 인스턴스를 생성할 때 자동으로 생성되기 때문에, t = test01()를 실행하게 되면 "Siuuuu"가 출력이 되는것을 볼 수 있다.
class test01:
def __init__(self):
print("Siuuuu")
def func1(self):
print("func1")
def func2(self):
print("func2")
t = test01()
Siuuuu
또 다른예시를 들어보면 아래의 코드에는 생성자에 매개변수가 추가되었다. 그 상태에서 위와 같이 실행해보면 에러가 발생하는 것을 볼수있다. 생성자가 인스턴스 생성시에 자동으로 실행되는데, 이 때 인자값을 못 받았기 때문에 발생한 에러이다.
이 문제를 해결하기 위해서는 인스턴스 선언시에 인자값을 추가해주면 된다.
Ex.) t = test01("john", "123", "010-2222")
class test01:
def __init__(self, id, pw, phone):
self.id = id
self.pw = pw
self.phone = phone
def func1(self):
print("func1")
def func2(self):
print("func2")
t = test01()
TypeError: __init__() missing 3 required positional arguments: 'id', 'pw', and 'phone'
'Programming > Python' 카테고리의 다른 글
[Python] range()와 xrange()의 차이 (0) | 2023.10.07 |
---|---|
[Python] @classmethod와 @staticmethod (0) | 2023.09.21 |