2024-04-24-WED 수업 [INTRODUCTION TO 파이썬] - 인포앤북
0. INTRO
클래스 : 설계도, 틀
객체 : 실체, 실제작동
멤버변수
=> 속성, 상태, 필드, 변수
=> 메서드, 동작, 행동, 기능, 함수
인스턴스 변수
=> 클래스를 연산자를 사용하여 만든다 (JAVA에서는 new연산자)
=> python에서는 인스턴스변수=클래스명()
클래스명 규칙
=> 첫글자는 영어대문자를 사용
=> 나머지는 식별자 규칙과 유사
객체변수
=> 소문자 사용
식별자규칙
=> 첫글자는 영문, , $로 시작
=> 특수문자, 공백 사용불가 ( $제외)
=> 숫자로 시작 불가
=> 대소문자 구분
=> 예약어 사용
=> 카멜기법, 스네이크기법
=>식별자를 사용 용도에 맞는 유사한 단어 선택
전역변수 : 프로그램 전체 어디서나 사용가능
지역변수 : 블럭안에서 사용, 블럭을 나가면 사용불가
1. 객체지향 프로그래밍
⚠ import로 함수 불러오기도 가능하다.
예) from 패키지명 import 함수명1,2...
⚠ 클래스 안의 함수(def)는 메서드 라고 부르기
속성과 메소드로 구성되는 객체 생성에 사용되는 틀
클래스로부터 생성되어 해당 클래스의 속성과 메소드를 가짐
클래스와 객체 내부에서 사용되는 변수를 의미
클래스와 객체 내부에서 사용되는 함수를 의미한다.
내가 아닌 남이 만든 코드를 재사용하고 싶을 때 사용하는 대표적인 방법
함수처럼 어떤 기능을 함수 코드로 묶어 두는 것이 아니라, 어떤 기능을 수행하는 하나의 단일 프로그램을 객체라고 하는 코드로 만들어 다른 프로그래머가 재사용할 수 있도록 함
클래스와 객체 예제 1번
class Person:
# 클래스를 만듦=> class 예약어, 클래스 명은 식별자 규칙 적용
def hello(self):
print("안녕하세요. 클래스 안에 있는 메서드 입니다.")
#end method
# end class
# 클래스는 틀이므로 실체를 만들어서 사용한다. => 객체
person1 = Person()
# 객체변수(인스턴스변수) = 클래스명() => 객체 생성
person1.hello()
# 객체 사용은 점(.)연산자 사용
# 객체변수.메서드()
class Cat: # Cat 클래스 생성
kor_name ="로키"
eng_name="rocky"
age =2
# 한글이름, 영어이름, 나이 속성
def sound(self): # sound 메서드 생성
print("야옹~!~!")
def speed(self): # speed 메서드 생성
print("엄청 빠르다!")
# end class
mycat=Cat()
# Cat클래스에 mycat 객체 생성
print("한글이름 :", Cat.kor_name)
print("영어이름 :", Cat.eng_name)
print("나이 :", Cat.age)
# 클래스.객체명으로 출력
mycat.sound()
mycat.speed()
# 객체.메서드명으로 출력
2. self 매개변수
class Members:
def set_info(self, name):
self.name=name
# 객체변수.매개변수 = 매개변수
# 클래스의 메소드에서 사용되는 매개변수 self는
# 객체에서 메소드를 호출할 때 해당 객체를 전달받는데 사용된다.
def show_info(self):
print("이름 :", self.name)
# end class
member1 = Members()
member1.set_info("홍지수")
member1.show_info()
member2 = Members()
member2.set_info("안지영")
member2.show_info()
3. 생성자 init
이 클래스에서 사용할 속성을 정의하는 초기화 함수
class Members:
def __init__(self, name, age):
# init을 이용하여 속성을 정의하고, 함수로 묶었다
self.name = name
self.age = age
def show_info(self) : # 인수는 객체를 받음
print("이름 :", self.name)
print("나이 :", self.age)
# end class
member1 = Members("황선영", 18)
member1.show_info()
member2 = Members("최종화", 32)
member2.show_info()
4. 속성 Attribute
클래스에 속해 있는 속성, 해당 클래스에서 파생된 모든 객체가 속성을 가질 수 있다.
객체(인스턴스)에서만 그 값이 유효
class Student:
def __init__(self) :
# 생성자를 이용해서 속성을 초기화
self.pet = []
# 인스턴스 속성
# john과 sally 각각의 객체에서만 유효함
def push_pet(self, x):
self.pet.append(x)
# end class
john = Student()
john.push_pet("고양이")
print(john.pet)
sally = Student()
sally.push_pet("이구아나")
print(sally.pet)
class Student:
pet = []
# 클래스 속성
# john과 sally 모두가 속성 가짐
def push_pet(self, x):
self.pet.append(x)
# end class
john = Student()
john.push_pet("고양이")
print(john.pet)
sally = Student()
sally.push_pet("이구아나")
print(sally.pet)
2024-04-25-THU 수업 [INTRODUCTION TO 파이썬] - 인포앤북
5. 상속
class A : # 부모 클래스 A, 상위 클래스, 루트 클래스
멤버변수
class B(A) : # 자식 클래스 B, 하위, 파생
부모 클래스에서 정의된 생성자를 가져와서 자식 클래스에 포함시키는 역할을 수행함.