본문 바로가기
프로그래밍/파이썬

클래스 self에 대해서

by 훨훨날아 2021. 5. 16.

파이썬 알고리즘 인터뷰의 첫 문제를 푸는 도중 여러가지 생소한 개념들이 등장했다.

def function(self, s:str) -> bool:
	strs = []
    for char in s:
    	char.append(char.lower())
        
    while len(strs)<1:
    	if star.pop(0) != star.pop():
        	return False
    return True

다음과 같은 식이 있을 때 다른 것들은 이해가 갔는데 self가 왜 사용됐는지 그리고 IDE에서 function을 어떻게 적용하는지, while만 했을때 return에서 오류가 나는지 알수없았다.

 

1. self 의 개념

self는 class를 사용할 때 현재 사용하는 class가 어떤것인지 알려주는 개념이라고 한다. class 라는 틀을 코드를 활용해서 불러오면 메모리 어딘가에 저장이 되는데 x1, x2, x3 과 같이 같은 함수내 Z를 이용해서 다른 것들을 만들때 Z가 어디에 있는 인자인지 구분하기 위해 현재 작동하는 함수내 라는 뜻의 self를 입력해줘야한다고 한다. 

위에서 정의한 function을 사용할 때, function( 'abba') 만 입력했더니 self값을 넣어줘야한다고 나온다. 그래서 function ('아무문자', 'abba')를 입력하니 값이 출력됐다. 아무문자나 넣으면 안될 것 같은데 아직 class를 공부하지 않아 잘 모르겠다. (아시는분?)

2. return값이 out of function에 있다고 할때

while안에서 return 값을 보기 위해 다음과 같이 입력하였더니 return 값이 out of function 되었다고 나왔다.

while len(strs)<1:
    	if star.pop(0) != star.pop():
        	return False

검색해보니 def안에서 while 구문이 선언되어야 return 값이 정상적으로 출력된다고 한다.

 

https://youtu.be/zyqybXL7mfw

 

반응형

'프로그래밍 > 파이썬' 카테고리의 다른 글

파이썬 kaggle 강의 7/7  (0) 2021.05.18
kaggle 파이썬 4/7  (0) 2021.05.18
Kaggle 파이썬 강의 (6/7)  (0) 2021.05.16
Kaggle 파이썬 강의 (5/7)  (0) 2021.05.16
Kaggle 파이썬 강의 (2/7)  (0) 2021.05.15