파이썬 생성자 - 어떻게 사용하나요?

파이썬에서 클래스의 객체를 생성하고 초기화하기 위해서는 특별한 메소드가 필요하고 그 특별한 메소드(함수)를 생성자라고 합니다. 모든 클래스에는 생성자가 있지만 명시적으로 정의할 필요는 없습니다. 이 자습서에서는 Python 생성자 및 사용 방법에 대해 읽습니다.

목차


  • Python constructors - definition
  • Types of constructors
  • Closing thoughts

  • 파이썬에서 생성자는 무엇입니까?



    생성자는 일반적으로 클래스의 개체를 인스턴스화하는 데 사용됩니다. 생성자의 주요 목적은 클래스의 객체가 생성될 때 클래스의 데이터 멤버에 값을 할당하는 것입니다.
    객체가 생성되고 init() 메서드에 의해 시뮬레이트될 때 생성자는 항상 호출됩니다. 클래스의 속성이나 메서드에 액세스할 수 있는 첫 번째 인수로 자체(객체)를 참조하는 self-키워드를 허용합니다.

    통사론:



    def __init__(self): 
    

    입력:



    class Student:
      def __init__(self, name, roll_no)
        self.name = name
        self.roll_no = roll_no
    
      def display(self):
        print ("Roll No.: %d \nName: %s" % (self.roll_no, self.name))
    
    # Creating object of the class
    stud1 = Student("Alex", 34)
    stud2 = Student("Mark", 67)
    
    stud1.display()
    stud2.display()
    

    init() 정의를 기반으로 클래스 객체를 생성할 때 여러 인수를 전달할 수 있습니다. 기본 생성자에만 의존하더라도 모든 클래스에는 생성자가 있어야 합니다.

    산출:



    Roll No.: 34
    Name: Alex
    Roll No.: 67
    Name: Mark
    

    C++ 또는 Java에서 생성자는 해당 클래스와 동일한 이름을 갖지만 Python에서는 동일하지 않습니다.

    Python 생성자의 유형



    Python에는 두 가지 유형의 생성자가 있습니다.

    매개변수화된 생성자



    매개변수화된 생성자에는 self와 함께 여러 매개변수가 있습니다. self로 알려진 구성되는 인스턴스에 대한 참조로 첫 번째 인수를 사용하고 나머지 인수는 프로그래머가 제공합니다.

    입력:



    class Student:
    
    # Parameterized constructor
      def __init__(self, name, roll_no):
        self.name = name
        self.roll_no = roll_no
    
      def display(self):
        print ("Roll No.: %d \nName: %s" % (self.roll_no, self.name))
    
    # Creating object of the class
    stud1 = Student("Navya", 34)
    stud2 = Student("Mia", 67)
    
    stud1.display()
    stud2.display()
    

    위의 예에서 두 개의 매개변수를 사용하는 매개변수화된 생성자가 정의됩니다.

    산출:



    Roll No.: 34
    Name: Navya
    Roll No.: 67
    Name: Mia
    

    매개 변수가 없는 생성자



    매개변수화되지 않은 생성자는 값을 조작하고 싶지 않을 때 사용하거나 인수로 self만 있는 생성자를 사용합니다. 해당 정의에는 구성 중인 인스턴스에 대한 참조인 인수가 하나만 있습니다.

    입력:



    class Student:
    
    # no-argument constructor
      def __init__(self)
        self.name = "Mark"
        self.roll_no = "67"
    
      def display(self):
        print ('Roll No.:', self.roll_no, \n'Name:', self.name)
    
    # Creating object of the class
    stud = Student()
    
    stud.display()
    

    보시다시피 객체를 생성하는 동안 생성자에게 전달되는 인수가 없습니다.

    산출:



    Roll No.: 67
    Name: Mark

    마무리 생각



    4개의 개체를 만들면 클래스 생성자도 4번 호출됩니다. Python에 생성자가 있는 것처럼 클래스의 객체를 파괴하는 데 사용되는 생성자destructors도 있습니다. 더 많은 Python 개념here에 대해 배울 수 있습니다.

    좋은 웹페이지 즐겨찾기