Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SpringBoot
- 자바스크립트
- JS
- Dict
- Python
- c#
- Java
- synchronized
- 클래스
- 객체
- StringBuilder
- SSL
- 배열
- GIT
- array
- AssertJ
- docker
- 스프링부트
- join()
- JavaScript
- class
- 메소드
- 자바
- 파이썬
- Swing
- Docker Desktop
- 프로그래머스스쿨
- 저장소
- thread
- event
Archives
- Today
- Total
정리노트
[파이썬/python] [클래스] 객체 생성, 기본정의 본문
절차 지향 프로그래밍 (프로시저 지향 프로그래밍)은 서로 관련된 데이터와 함수를 묶을 수가 없다.
(함수는 active 한다. 이 함수를 이용하여 데이터에 변화를 줄 수는 있지만 일정 데이터를 가지는 하나의 객체가 될 수(생성 할 수) 없음.)
자동차를 만들 때마다 설계를 하는 것보다는
설계도 및 시스템을 하나 만들고
여러 대의 자동차를 만들 때 이름만 다르게 하여 찍어낼 수 있다.
클래스(Class) = 객체를 만들기 위한 설계도
# 자동차 설계도
인스턴스(instance) = 클래스로 만들어진 객체
# 자동차
class Counter(): # class의 네이밍 = 첫 글자는 대문자
# class "생성자" 이름은 꼭 __init__ (객체 초기화 함수)
def __init__(self): # 클래스로 객체를 생성할 때 디폴트로 호출됨, 매개변수(self) 항상 포함.
self.count = 0 # 인스턴스 변수 생성(self.변수명) / 항상 생성자 안에서 초기화 해야한다.
def increment(self): # 메소드 생성
self.count += 1 # 메소드 호출시의 동작
def sel():
global ask
ask = input("Y or N ? ")
ask = ask.upper()
a = Counter() # a 라는 이름의 Counter 클래스 객체생성 / 생성과 동시에 '생성자' 호출
# b 데이터를 가지는 객체 생성시, 다른 정의 없이 b = Counter() 호출
sel()
while ask == 'Y':
a.increment() # Y가 입력될 때 마다 a객체의 메소드 호출로 a객체의 인스턴스 변수 값 증가
sel()
print(f"Y가 입력된 횟수 : {a.count}")
class의 생성자 __init__ 내부에서 선언된 인스턴스 변수는
함수 내에서만 동작하는 지역변수와는 범위가 다르다.
class 내부 전체에서 사용가능
예시풀이) PYTHON EXPRESS
P376
class Television:
def __init__(self, channel, volume, on):
self.channel = channel
self.volume = volume
self.on = on
def show(self):
print(self.channel, self.volume, self.on)
def setChannel(self, channel):
self.channel = channel
def getChannel(self):
return self.channel
a = Television(10, 15, True) # 생성시 channel, volume, on 초기화
a.show() # 메소드 실행 // 출력 : 10 15 True
a.setChannel(7) # 메소드 실행 -> channel 값 7로 변경
a.show() # 출력 : 7 15 True
728x90
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬/python] [클래스] private 변수 / 접근자와 설정자 (0) | 2022.09.28 |
---|---|
[파이썬/python] [클래스] 객체생성, 기본원리 연습-정리 (0) | 2022.09.25 |
[파이썬/python] 리스트와 딕셔너리 비교 (0) | 2022.09.19 |
[파이썬/python] [딕셔너리] 메소드 (0) | 2022.09.19 |
[파이썬/python] split / join (0) | 2022.09.19 |