함수에서도 클래스 내에 선언된 함수와 그냥 함수는 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
여기서 정리된것 확인 가능합니다^^
'컴퓨터 > Python' 카테고리의 다른 글
[Python] 기초 문법 -2 list,dictionaries,sets and tuples (0) | 2021.01.12 |
---|---|
[Python] 기초 문법 -1 Number,Boolean,Strings (0) | 2021.01.11 |