Self는 클래스의 인스턴스를 나타냅니다. self를 사용하면 클래스의 속성과 메서드에 접근할 수 있습니다. 파이썬 . 주어진 인수로 속성을 바인딩합니다. 셀프를 이용해야 하는 이유. 그 이유는 Python이 인스턴스 속성을 참조하기 위해 @ 구문을 사용하지 않기 때문입니다. 파이썬 메소드가 속한 인스턴스가 자동으로 전달되지만 자동으로 수신되지는 않는 방식으로 메소드를 수행하기로 결정했습니다. 메소드의 첫 번째 매개변수는 메소드가 호출되는 인스턴스입니다.
Python에서 self는 어떻게 사용되나요?
Python에서 클래스로 작업할 때 self라는 용어는 현재 사용 중인 클래스의 인스턴스를 나타냅니다. 클래스의 인스턴스 메소드에서는 self를 첫 번째 매개변수로 사용하는 것이 일반적입니다. 생성된 객체의 메소드를 호출할 때마다 수업 , 객체는 self 매개변수를 사용하여 첫 번째 인수로 자동 전달됩니다. 이를 통해 개체의 속성을 수정하고 해당 특정 인스턴스에 고유한 작업을 실행할 수 있습니다.
파이썬3
class> mynumber:> >def> __init__(>self>, value):> >self>.value>=> value> > >def> print_value(>self>):> >print>(>self>.value)> obj1>=> mynumber(>17>)> obj1.print_value()> |
무한 루프
>
>
산출:
17>
Python 클래스 자체 생성자
클래스로 작업할 때 Python에서 클래스 생성자는 이름이 지정된 특수 메서드라는 점을 이해하는 것이 중요합니다. __더운__ 클래스의 인스턴스(객체)를 만들 때 호출됩니다. 이 메소드는 객체의 속성을 초기화하는 데 사용됩니다. 생성자의 self 매개변수는 생성되는 인스턴스를 참조하며 해당 속성에 액세스하고 설정할 수 있도록 허용한다는 점을 기억하세요. 이러한 지침을 따르면 Python에서 강력하고 효율적인 클래스를 만들 수 있습니다.
파이썬3
class> Subject:> >def> __init__(>self>, attr1, attr2):> >self>.attr1>=> attr1> >self>.attr2>=> attr2> obj>=> Subject(>'Maths'>,>'Science'>)> print>(obj.attr1)> print>(obj.attr2)> |
>
>
산출:
Maths Science>
Python의 self는 키워드입니까?
아니요, '자신' 는 아니다 예어 파이썬에서. 에스elf>인스턴스 자체를 참조하기 위해 인스턴스 메소드에서 사용되는 매개변수 이름일 뿐입니다.
np 0
보다 명확하게 말하면 SELF는 다음과 같은 특징을 가지고 있다고 말할 수 있습니다.
Self: 현재 객체에 대한 포인터
자아는 항상 현재 객체를 가리키고 있습니다. 클래스의 인스턴스를 생성하면 기본적으로 고유한 특성 및 메서드 집합이 있는 객체가 생성됩니다.
파이썬3
class> check:> >def> __init__(>self>):> >print>(>'Address of self = '>,>id>(>self>))> obj>=> check()> print>(>'Address of class object = '>,>id>(obj))> |
>
>
산출:
Address of self = 140273244381008 Address of class object = 140273244381008>
예: 속성과 메소드를 사용하여 클래스 생성
이 코드는 Python 클래스를 정의합니다.car>'모델'과 '색상' 속성을 가진 자동차를 나타냅니다. 그만큼__init__>생성자는 각 인스턴스에 대해 이러한 특성을 초기화합니다. 그만큼show>메소드는 모델과 색상을 표시하고, 직접 속성 액세스 및 메소드 호출은 인스턴스별 데이터 검색을 보여줍니다.
파이썬3
class> car():> > ># init method or constructor> >def> __init__(>self>, model, color):> >self>.model>=> model> >self>.color>=> color> > >def> show(>self>):> >print>(>'Model is'>,>self>.model )> >print>(>'color is'>,>self>.color )> > # both objects have different self which contain their attributes> audi>=> car(>'audi a4'>,>'blue'>)> ferrari>=> car(>'ferrari 488'>,>'green'>)> audi.show()># same output as car.show(audi)> ferrari.show()># same output as car.show(ferrari)> print>(>'Model for audi is '>,audi.model)> print>(>'Colour for ferrari is '>,ferrari.color)> |
>
java do while 예제
>
산출:
Model is audi a4 color is blue Model is ferrari 488 color is green Model for audi is audi a4 Colour for ferrari is green>
생성자와 메서드의 Self
Self는 전달되는 첫 번째 인수입니다. 건설자 Instance Method.Self는 Instance 메서드 및 생성자에 First 매개 변수로 제공되어야 합니다. 제공하지 않으면 오류가 발생합니다.
파이썬3
자바 문자를 int로
# Self is always required as the first argument> class> check:> >def> __init__():> >print>(>'This is Constructor'>)> object> => check()> print>(>'Worked fine'>)> # Following Error is produced if Self is not passed as an argument> Traceback (most recent call last):> >File> '/home/c736b5fad311dd1eb3cd2e280260e7dd.py'>, line>6>,>in> > >object> => check()> TypeError: __init__() takes>0> positional arguments but>1> was given> |
>
>
자체: 키워드가 아닌 규칙
자아는 관습이지 관습이 아니다 파이썬 키워드 . Self는 Instance Method의 매개변수이며 사용자는 이를 대신하여 다른 매개변수 이름을 사용할 수 있습니다. 하지만 self를 사용하는 것이 코드의 가독성을 높이고 좋은 프로그래밍 습관이기도 하므로 사용하는 것이 좋습니다.
파이썬3
class> this_is_class:> >def> __init__(in_place_of_self):> >print>(>'we have used another '> >'parameter name in place of self'>)> > object> => this_is_class()> |
>
>
산출:
we have used another parameter name in place of self>