스택큐힙리스트

파이썬 클래스에서 'cls'와 'self'의 차이점은 무엇인가요? 본문

카테고리 없음

파이썬 클래스에서 'cls'와 'self'의 차이점은 무엇인가요?

스택큐힙리스트 2023. 4. 13. 08:54
반응형

왜 Python 클래스에서 종종 cls 대신에 self가 인자로 사용되는 건가요?

예를 들면:

class Person:

def __init__(self, firstname, lastname):

self.firstname = firstname

self.lastname = lastname

@classmethod

def from_fullname(cls, fullname):

cls.firstname, cls.lastname = fullname.split(' ', 1)

답변 1

self와 cls 사이의 차이는 PEP 8에서 정의됩니다. Adrien이 말한 대로, 이것은 필수적이지 않습니다. 이것은 코딩 스타일입니다. PEP 8는 다음과 같이 말합니다:

기능 및 메서드 인수 :

인스턴스 메소드의 첫 번째 인자에는 항상 self을 사용하세요.

클래스 메서드의 첫번째 인수로 항상 cls을 사용하십시오.

답변 2

'cls'와 'self'는 파이썬 클래스에서 매우 중요한 개념입니다. 이 둘의 목적은 서로 다릅니다. 'cls'는 메소드를 정의하는 클래스 자체를 나타내고, 'self'는 클래스 인스턴스를 나타냅니다.

'cls'는 클래스 메소드 내부에서 사용됩니다. 클래스 메소드는 클래스 자체를 수정하거나 인스턴스를 만들 필요가 없는 경우 사용됩니다. 'cls'는 클래스 첫 번째 인자로 사용되며, 해당 클래스를 나타냅니다. 이것은 클래스 멤버 변수에 액세스하는 데 사용됩니다.

반면에 'self'는 객체 인스턴스에서 사용됩니다. 메소드가 호출될 때 해당 객체 인스턴스 자체가 전달됩니다. 'self'는 인스턴스 첫 번째 인자로 사용되며, 해당 인스턴스를 나타냅니다. 이것은 해당 인스턴스의 인스턴스 멤버 변수에 액세스하는 데 사용됩니다.

결론적으로, 'cls'와 'self'는 모두 파이썬 클래스에서 매우 중요한 역할을 합니다. 'cls'는 클래스 멤버 변수에 액세스하는 데 사용되며, 'self'는 해당 객체 인스턴스의 인스턴스 멤버 변수에 액세스하는 데 사용됩니다. 이러한 차이를 잘 이해하면 파이썬 클래스를 더욱 효과적으로 작성할 수 있습니다.

반응형
Comments