티스토리 뷰

함수 제일 첫번째 인자 self의 의미

  • 파이썬 메서드의 첫번째 파라미터명은 관례적으로 self라는 이름을 사용합니다.
  • 호출 시 호출한 객체 자신이 전달되기 때문에 self라는 이름을 사용하게 된 것
  • 이를 이용하여 클래스에서 바로 메소드로 접근하면서 위에서 할당한 Flight의 객체 f를 파라미터로 전달함으로써 똑같은 결과값 얻습니다.
# 메소드 작성하기
class Flight:
    def number(self):
        return 'SN060'

 

이거랑

# 인스턴스의 메소드 사용
>>> from airtravel import Flight
>>> f = Flight()
>>> f.number()
'SN060'

 

이거랑 같다. 

# 클래스의 내부에 self 파라미터가 포함되는데 이를 이용한 접근법
>>> Flight.number(f) # f는 Flight객체
'SN060'

 

 

new와 init함수의 의미

  • 생성자로 객체생성을 호출받으면 먼저 __new__ 를 호출하여 객체를 생성할당하고, __new__ 메소드가 __init__메소드를 호출하여 객체에서 사용할 초기값들을 초기화하게됩니다.
  • 간혹 여러 자료들을 보면.. __init__ 메소드를 생성자로 소개하는 경우가 있는데, 그렇지 않습니다.
  • 자료 https://stackoverflow.com/questions/6578487/init-as-a-constructor
  • 일반적으로 파이썬에서 클래스를 만들 시 __init__ 메소드만 오버라이딩하여 객체초기화에만 이용합니다.

 

underbar(_) 변수의 의미

  • Python은 기본적으로 다른언어에 있는 접근제어자(public, private, protected)가 없음
  • 기본적으로 모두 Public
  • 위의 예처럼 _ 언더바 한개는 내부적으로만 사용되는 변수다라고 알리지만, 사실 값을 얻어올수도 있고 할당도 가능합니다. 사람들이 코딩컨벤션으로 파이썬을 쓰는 사람들이면 내부적인 변수구나 하고 알고 있을 뿐..
  • 원천적인 접근을 막으려면 __ 더블 언더바를 사용하면 막을 수 있습니다.
  • 코드를 다시 변경해보겠습니다. _name 변수를 __name으로 변경하였습니다.
  • 파이썬은 메소드 오버로딩이 없습니다.
  • null은 None이다.

 

 

 

[출처]

https://wikidocs.net/16071

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함