파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
Python으로 클래스를 작성할 때 종종 용어를 접할 수 있습니다. 'self.'
초보자가 Python 프로그래밍 언어의 객체 지향 기능을 더 깊이 파고들 때 이해해야 하는 중요한 개념입니다.
매개 self
변수는 클래스의 현재 인스턴스를 나타냅니다. 이를 사용하여 해당 클래스에 속하는 특성 및 메서드에 액세스할 수 있습니다.
self
이 Python 자습서에��는 변수가 Python 클래스에서 중추적인 역할을 하는 방법을 살펴봅니다 . 또한 self
.
목차
파이썬에서 자기 이해하기
파이썬은 클래스와 객체에 크게 의존하는 객체 지향 프로그래밍(OOP) 언어입니다. 따라서 self
매개변수를 살펴보기 전에 먼저 객체 지향 프로그래밍이 무엇인지 이해해야 합니다.
Python의 객체 지향 프로그래밍
분필 쓰기 – OOP, 객체 지향 프로그래밍 " data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" 디코딩="async" 로딩="게으른" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="파이썬에서 자아란 무엇인가?" class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" 크기="(최대 너비: 709px) 100vw, 709px">
객체 지향 프로그래밍은 프로그래머가 클래스와 객체를 사용하여 실제 개념과 관계를 모델링하는 데 도움이 됩니다. 그 결과 더 구조화되고 재사용 가능하며 확장 가능한 코드가 생성됩니다.
클래스를 미리 정의된 속성 및 메서드가 있는 개체를 만들기 위한 템플릿으로 생각하십시오. 또한 객체는 속성에 대한 자체 값을 저장하고 클래스 함수에 액세스할 수 있는 클래스의 인스턴스입니다.
이 두 개념은 많은 Python 응용 프로그램 에서 중요한 빌딩 블록입니다 . Python Faker Library로 데이터를 쉽게 생성하는 방법에 대한 이 비디오에서 작업 중인 클래스와 개체를 모두 볼 수 있습니다.
Python Self의 역할
Self
Python에서 클래스의 인스턴스에 대한 참조입니다. 자체 범위 내에서 클래스의 특성 및 메서드에 액세스하고 수정할 수 있습니다.
self
다음은 Python에서 사용에 대한 몇 가지 핵심 사항입니다 .
Self
Python 구문에서 예약된 키워드가 아닙니다 . 다른 이름을 사용하여 클래스 인스턴스를 식별할 수 있지만 self
Python 프로그래머가 가장 널리 사용하고 허용하는 규칙입니다.Self
클래스의 현재 인스턴스를 참조하기 위해 인스턴스 메소드의 첫 번째 매개변수로 사용됩니다.self
인스턴스 속성과 로컬 변수를 구별하여 코드를 더 읽기 쉽고 버그가 적게 만들 수 있습니다.self
매개 변수를 선언해야 합니다 . __init__()
그렇게 하지 않으면 프로그램에서 typeerror
. class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given
참고:self
Python 3에서 제공하는 정적 메서드 기능을 사용하여 함수에서 매개 변수를 사용하여 우회할 수 있습니다 . 이에 대해서는 이후 섹션에서 자세히 살펴보겠습니다.
자기 작업
사용 방법을 배우는 것은 self
파이썬에서 클래스를 구축하는 데 매우 중요합니다. self
이 섹션 전체에서 클래스 및 개체로 작업할 때 다양한 시나리오에서 사용하는 방법을 배웁니다 .
'__init__()'로 객체 초기화하기
클래스의 새 인스턴스를 만들 때 __init__()
개체의 특성을 초기화하기 위해 메서드가 호출됩니다. 메서드 __init__()
는 클래스 생성자이며 매개 self
변수를 첫 번째 인수로 사용합니다.
매개 self
변수는 이 메소드 내에서 인스턴스 속성을 지정된 인수와 연관시키는 데 사용됩니다.
예를 들면 다음과 같습니다.
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
이 예제에서 메서드는 개체 초기화 중에 매개 변수로 , 및 를 사용합니다 . 이 매개변수는 클래스 인스턴스를 참조하므로 작성 중인 특정 객체에 대한 및 속성을 설정할 수 있습니다 . init
self
name
age
self
name
age
메서드에서 Self 사용
클래스에서 인스턴스 메서드를 정의할 때 self
첫 번째 매개변수로 포함해야 합니다. 이렇게 하면 클래스 내의 인스턴스 특성 및 기타 메서드에 액세스할 수 있습니다.
이전 예제를 확장해 보겠습니다.
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()
이 예에서 메서드는 첫 번째 매개변수로 를 introduce()
포함합니다 . self
이를 통해 개체의 이름 및 나이 속성에 액세스하고 개인화된 소개를 만들 수 있습니다.
코드에서 메서드를 호출할 때 매개 변수를 명시적으로 전달할 필요가 없습니다
self
. Python이 자동으로 처리합니다.
이러한 지침을 따르고 Pythonself
의 목적을 이해함으로써 초보자는 클래스 및 개체를 효과적으로 사용할 수 있습니다. 이를 통해 읽기 쉽고 유지 관리하기 쉬운 잘 구성된 코드를 만들 수 있습니다.
일반적인 자체 사용 사례
Python 코드에서 키워드를 사용할 수 있는 방법에는 여러 가지가 있습니다 . 이러한 사용 사례를 이해하면 프로그램에서 효과적으로 활용할 수 있습니다 . self
self
그들 중 일부를 살펴 보겠습니다.
클래스 속성에 접근하기
의 주요 용도 중 하나는 self
클래스 내의 인스턴스 속성에 액세스하는 것입니다. 인스턴스 속성은 클래스에서 생성된 객체에 고유하며 객체의 데이터를 저장합니다.
를 사용하면 self
클래스 메서드 내에서 이러한 특성을 조작하거나 액세스할 수 있습니다. 예를 살펴보겠습니다.
class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)
self
이 예제에서는 메서드 내에서 Dog 개체의 이름 특성에 액세스하는 데 사용했습니다 display_name
.
클래스 메서드 호출
의 또 다른 일반적인 사용 사례는 self
인스턴스 메서드 내에서 다른 클래스 메서드를 호출하는 것입니다. 이를 통해 코드를 재사용하고 복잡성을 줄이며 가독성을 높일 수 있습니다.
self
특정 인스턴스에 대해 올바른 메서드가 호출되도록 보장하므로 다른 메서드를 참조할 때 사용하는 것이 중요합니다 . 다음 예를 고려하십시오.
class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)
위의 예에서는 메서드 내에서 메서드를 self
호출하는 데 사용합니다 . 이를 통해 한 번의 호출로 새의 종과 색상을 표시할 수 있습니다.show_species
show_info
self
마지막으로 인스턴스 속성에 액세스하고 클래스 메소드를 호출할 때 사용하는 것을 잊지 마십시오 . 이러한 사용 사례를 이해하면 보다 효율적이고 체계적인 Python 코드를 작성할 수 있습니다.
모범 사례
작업할 때 self,
코드의 문제와 버그를 방지하기 위해 따라야 하는 몇 가지 규칙이 있습니다. 다음은 그 중 일부입니다.
셀프 사용처
인스턴스 메소드를 정의할 때 항상 self
매개변수를 첫 번째 매개변수로 사용하십시오. 이를 통해 개체의 인스턴스 특성에 액세스 및 수정하고 클래스 내에서 다른 인스턴스 메서드를 호출할 수 있습니다.
Python에서 객체 인스턴스로 작업할 때 사용하는 것이 중요합니다 self
. 이를 사용하면 일관된 동작을 보장하고 적절한 개체 캡슐화가 가능합니다.
예를 들어 다음 클래스를 고려하십시오.
class MyClass: def __init__(self, my_var): self.my_var = my_var
여기서 self 매개변수는 객체 인스턴스의 속성을 __init__
초기화하는 메서드 에서 사용됩니다. my_var
이렇게 하면 인스턴스별 특성이 됩니다. my_var
결과적으로 클래스의 다른 메서드에서 자체 참조를 사용하여 액세스하고 수정할 수 있습니다.
자신의 명명 규칙
는 Python에서 인스턴스에 사용되는 일반적인 이름 이지만 self
기술적으로는 원하는 이름을 사용할 수 있습니다. 그러나 보다 광범위한 Python 커뮤니티와의 명확성과 일관성을 위해 self를 계속 사용하는 것이 좋습니다.
다른 이름을 사용하면 특히 Python 라이브러리의 표준 명명 규칙에 익숙한 경우 코드를 읽고 작업하는 사람들에게 혼란을 줄 수 있습니다.
셀프를 사용하지 말아야 할 곳
우리는 이미 self
매개변수가 개체 인스턴스에 대한 액세스를 제공한다는 것을 알고 있습니다. 그러나 경우에 따라 클래스의 일부 함수는 개체 인스턴스에 대한 액세스가 필요하지 않을 수 있습니다.
이 시나리오에서는 self 매개변수가 필요하지 않습니다. 따라서 Python은 self 매개 변수를 우회하기 위한 정적 메서드 기능을 제공합니다.
예를 들면 다음과 같습니다.
class Car: @staticmethod def print_car(): print('Vroom Vroom')
위의 예에서 함수 데코레이터는 메서드의 매개 변수 요구 사항을 @staticmethod
재정의합니다 . self
이렇게 하면 전달된 개체 인스턴스가 없더라도 함수가 계속 실행됩니다.
결론
요약하면 Python의 self 매개변수는 클래스의 인스턴스를 참조하고 속성과 메서드에 액세스할 수 있도록 합니다. Python 개발자로서 self의 목적과 클래스 및 개체에서의 용도를 이해하는 것이 중요합니다.
코드에서 self를 일관되게 사용하면 가독성과 유지 관리가 향상되어 작업의 전반적인 품질이 향상됩니다.
또한 Python에서 자주 사용되는 용어를 볼 수 있지만 "self"
예약된 Python 키워드는 아닙니다. 이는 예약어인 Javascript 및 Java 와 같은 프로그래밍 언어와 다릅니다."this"
원하는 대로 클래스 메서드의 첫 번째 매개변수 이름을 지정할 수 있습니다. " self
" 는 선호되는 규칙일 뿐입니다.
Python 프로그래머들 사이에 항상 맴도는 질문이 있습니다. self는 실제로 Python의 키워드입니까?
self가 키워드로 간주되는 C++와 같은 다른 프로그래밍 언어와 달리 Python에서는 프로그래머가 따르는 경향이 있습니다. 기본적으로 메소드 정의의 매개변수입니다. 하지만 본인 대신 다른 또는 나
이해를 돕기 위해 예를 들어보겠습니다.
class myClass: def show(another): print("self 대신 another이 사용됩니다.")
이 코드를 Python 클래스 자체 생성자의 코드와 비교해 보면 여기서는 다른 이름을 사용했음을 알 수 있습니다. 자신의 장소. 이제 이 클래스의 객체를 생성하고 출력을 살펴보겠습니다.
객체 = myClass() object.show()
self 변수 대신 다른 이름을 사용해도 프로그램이 작동하는 것을 볼 수 있습니다. 이는 self 변수와 정확히 동일한 방식으로 작동합니다.
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것