Python 다중 생성자
이 튜토리얼에서는 생성자와 파이썬에서 여러 생성자의 필요성을 처리하는 방법에 대해 설명합니다.
Python의 생성자
Java, C++ 및 C# 프로그래밍 언어와 같은 프로그래밍 언어에는 클래스의 개체가 초기화될 때만 실행되는 생성자 함수의 개념이 있습니다. 생성자 함수는 모든 클래스 속성을 초기화하는 데 사용됩니다. 이 생성자 함수의 이름은 클래스의 이름과 같습니다. 생성자 함수의 개념은 파이썬에서 동일하지만 생성자 함수의 이름은 모든 클래스에 대해 __init__()
입니다. Python의 생성자는 항상 하나의 매개변수, 즉 호출 객체에 대한 포인터를 취합니다. 다음 코드 스니펫은 Python에서 매개변수화되지 않은 생성자를 만드는 방법을 보여줍니다.
class Person:
def __init__(self):
print("Constructor Function")
if __name__ == "__main__":
p1 = Person()
출력:
Constructor Function
Person
클래스에 대한 매개변수화되지 않은 생성자를 생성하고 메인 함수에 Person
클래스 객체를 생성했습니다. 생성자는 p1 = Person()
으로 객체를 생성할 때 호출되었습니다.
Python의 다중 생성자
Java, C# 및 C++ 프로그래밍 언어에는 단일 클래스에 대해 원하는 만큼 생성자를 만들 수 있는 다중 생성자라는 개념이 있습니다. 불행히도 Python에서는 단일 클래스에 대해 여러 생성자를 정의할 수 없습니다. 이 제한을 해결하는 일반적인 방법은 기본 매개변수 생성자를 사용하는 것입니다. 기본 매개변수 생성자는 클래스 객체를 생성하는 동안 매개변수가 전달되지 않으면 자동으로 클래스 속성에 값을 할당하는 생성자입니다. 기본 매개변수 생성자는 객체 생성 중에 일부 값이 지정된 경우 지정된 값을 클래스 속성에 할당합니다. 다음 코드 스니펫은 Python에서 기본 매개변수 생성자를 사용하여 여러 생성자의 필요성을 제거하는 방법을 보여줍니다.
class Person:
def __init__(self, name="Tom"):
self.name = name
def show(self):
print("Name = ", self.name)
if __name__ == "__main__":
p1 = Person()
p2 = Person("Mark")
p1.show()
p2.show()
출력:
Name = Tom
Name = Mark
함수 정의 시 기본값을 지정하여 위의 코드에서 기본 매개변수 생성자를 생성했습니다. Person
클래스의 생성자는 매개변수 이름을 가져와 클래스 매개변수 name
에 할당합니다. 매개변수 이름의 기본값은 Tom
입니다. 메인 함수에서 Person
클래스의 p1
과 p2
라는 두 개의 객체를 생성했습니다. 객체 p1
은 초기화하는 동안 값을 지정하지 않습니다. 객체 p2
는 Mark
를 생성자 매개변수로 전달합니다. 그런 다음 p1
및 p2
를 사용하여 show()
함수를 호출했습니다. show()
함수는 name
속성의 값을 표시합니다. p1
이 show()
함수를 호출할 때 출력은 기본값 Name = Tom
이지만 p2
가 show()
함수를 호출할 때 출력은 Name = Mark
입니다. p2
개체를 생성하는 동안 Mark
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn