본문 바로가기
컴퓨터/Python

[Python] 기초 문법 -3 function, class, self 의미

by IT황구 2021. 1. 17.
728x90
반응형

함수에서도 클래스 내에 선언된 함수와 그냥 함수는 parameter에서 차이가 있습니다.

그 차이만 확인하면 될 것 같습니다.

Function

클래스가 있을때와 없을때 차이가 있다.

 


우리가 일반적으로 사용하는 function과 같으며 def로 나타냅니다.

초기값을 설정해 줄 수 있습니다.

아래 id()는 뭐냐면

파이썬은 문자마다 주소를 할당해준다는걸 확인할 수 있습니다.

첫번째 예시로

x = "s" 를 할당하고 주소를 찍고

x = "s1" 을 할당하고 주소를 찍으면 서로 다릅니다.

하지만 다시 x = "s" 를 재 할당하면

처음 s의 주소와 같게 나옵니다.

100조가 넘는 경우의 수가 나오는데 (주소를 보면)

혹시 s1과 s가 중복된 주소면 어떻게 하나? 라는 걱정은 안해도 될 것 같습니다.

또한 가비지 컬렉션을 통해서 참조되지 않는 레퍼런스는 지워지니까 겹칠일은 없습니다.

Class 에서의 Function

클래스가 있을때와 없을때 차이가 있다.


Class는 위의 사진과 같이 class Name() : 로 선언을 합니다.

생성자는 __init__(self) 로 선언을 해야합니다.

반드시 함수명은 __init__ 이렇게 해야합니다.

이렇게 초기값을 지정해 줄 수 있습니다.

그렇다면

self 는 뭘까 ?? 할것입니다.

Class 내 function에서의 self

클래스 내 변수에 값을 할당할때 쓸 수 있다.


클래스 내에서 선언된 함수를 호출할 경우 자동으로 매개변수 하나가 가게 됩니다.

(python이 그렇게 만들었음)

그 예시를 한번 보겠습니다.

TypeError을 확인해보면 ex_self는 parameter를 0개를 취하지만 1개가 들어갔다고 나옵니다.

분명 e.ex_self() 인데 왜 들어갔다고 할까요? 바로 위에서 언급했듯이 자동으로 self가 가게 됩니다.

따라서 클래스 내에서 선언을 해줄때는 'self' 라는 걸 앞에 써줍니다.

'self' 말고 'ss' 'my' 이런건 안되냐고요? 안됩니다. self는 예약어 라서 못바꿉니다.

다른 객체지향 언어들의 this 라고 생각하면 됩니다.

이렇게 활용할 수 있습니다.

여기서 봐야할점은 e.ex_ok() 에서 argument가 없음에도 돌아간다는 것입니다.

이제 파이썬 기초 문법 끝입니다.

하면서 모르는건 찾아가면 될 듯 합니다!!

------END ------------------------

blog.naver.com/rbals0445/222210208062

 

[Python] 기초 문법 -3 function, class, self 의미

함수에서도 클래스 내에 선언된 함수와 그냥 함수는 parameter에서 차이가 있습니다.​그 차이만 확인하면 ...

blog.naver.com

여기서 정리된것 확인 가능합니다^^

728x90
반응형