Python 클래스의 자기
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> 인스턴스 자체를 참조하기 위해 인스턴스 메소드에서 사용되는 매개변수 이름일 뿐입니다.
보다 명확하게 말하면 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)> |
산출:
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
# 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