본문 바로가기
카테고리 없음

python 간단 정리 - (19)

by shinbian11 2020. 3. 19.

이 파일은 제가 python 기초 강의를 들으면서 필기했던 내용들을 간단하게 정리한 것입니다.

 

혹시나 잘못된 정보가 포함되어있을수도 있기 때문에, 

python 내용을 아시는 분들중에 잘못된 내용을 잡아내신 경우에는 댓글을 달아주시길 바랍니다.

 

----------------------------------------------------------------------------------------------------

저는 이미 c언어를 공부한 이후에 파이썬을 공부하고 있는 터라, 필기 내용 자체가 아무래도 c언어와 파이썬의

차이점을 위주로 정리를 했습니다. 그렇기 때문에 python을 아예 모르시는 분은 이 문서를 읽기에 약간 불편함이 

있을수도 있다는 점 양해바랍니다. c언어를 어느정도 알고 이 문서를 보는걸 추천드립니다 ㅎㅎ

저도 아직 초보라 틀린 내용이 있을수 있고, 만약 그 부분을 잡아내신다면 댓글로 알려주시길 바랍니다.


클래스,인스턴스

 

[클래스]

> 함수나 변수들을 모아 놓은 집합체

 

[인스턴스]

> 클래스에 의해 생성된 객체

> 인스턴스 각자 자신의 값을 가지고 있다.

 

=> 클래스가 붕어빵 틀이라면, 인스턴스(객체)는 그 틀로 찍어내는 붕어빵이라고 생각하면 된다.


is 연산

> 인스턴스들이 같은 인스턴스인지를 알아볼 수 있다!

> 사용법:  if(list1 is list2) : list1과 list2가 같은 인스턴스인지? 라고 묻는 문장!

 

ex) 

list1 = [1,2,3]
list2 = [1,2,3]

if list1 is list2:
    print('list1과 list2는 같은 인스턴스이다!')
else:
    print('같은 인스턴스가 아니다!')

#list1과 list2의 값은 같지만(list1 == list2)
#list1과 list2는 같은 인스턴스는 아닙니다.(if list1 is list2  => false)

 

클래스 만들기

 

> 구조 :  class 클래스명(): 

 

> 클래스와 인스턴스를 이용하면 데이터와 코드를 사람이 이해하기 쉽게 포장가능하다!

> 클래스에 함수도 당연히 넣을수있다!

 

ex)

class Human():
    '''사람'''
    
person1 = Human()  # Human의 인스턴스가 person1에 저장됨
person2 = Human()  # Human의 인스턴스가 person2에 저장됨

person1.language = '한국어'
person2.language = 'English'
person1.name = '서울시민'
person2.name = '인도인'

def speak(person):
    print("{}이 {}로 말을 합니다.".format(person.name, person.language))

Human.speak = speak  # Human 클래스에 speak함수를 넣었으므로, Human의 인스턴스인 person1,person2에서도 speak함수의 능력을 가지게된다! 즉.. 아래처럼 가능!
person1.speak()  # 서울시민이 한국어로 말을 합니다.
person2.speak()  # 인도인이 English로 말을 합니다.