>백엔드 개발 >파이썬 튜토리얼 >Python 클래스의 생성자는 무엇입니까?

Python 클래스의 생성자는 무엇입니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-25 16:58:2910625검색

Python 매직 메서드: __init__() 메서드, 생성자 메서드라고 합니다. __init__() 메서드의 마법은 객체가 인스턴스화되는 한 객체가 생성될 때 이 메서드가 자동으로 호출된다는 것입니다. 객체를 인스턴스화할 때 매개변수가 전달될 수 있습니다. 이러한 매개변수는 __init__() 메서드에 자동으로 전달되며 이 메서드를 재정의하여 객체의 초기화 작업을 사용자 정의할 수 있습니다.

요약: __init__() 메서드는 객체가 인스턴스화될 때 호출되는 특수 메서드입니다. __init__() 메서드의 기능은 초기화입니다.

Python 클래스의 생성자는 무엇입니까?

예 1:

class Myclass:
    i = 123
    def __init__(self,friend):
        self.friend = friend
 
    def func(self,myself):    #带有参数的类方法
        self.myself = myself
        return self.myself +"say hello to " + self.friend
 
use_class = Myclass("xiaoming")
print("调用类的属性:",use_class.i)
print("调用类的方法:", use_class.func("xiaohong"))

출력 결과:

#调用类的属性: 123
#调用类的方法: xiaohongsay hello to xiaoming

관련 권장 사항: "Python Video Tutorial"

1 Python에서 클래스를 정의할 때 __init__() 메서드가 정의되지 않은 다음 클래스가 정의됩니다. 인스턴스화됩니다. 시스템은 자동으로 기본 구성 메서드(매개변수 없는 __init__() 메서드)를 호출합니다. 또한 __init__() 메서드에는 매개변수가 __init__()를 통해 클래스의 인스턴스화 작업에 전달됩니다. class 여러 생성자(__init__())를 정의할 수 있지만 클래스를 인스턴스화할 때 마지막 생성자만 인스턴스화됩니다. 즉, 후속 생성자는 이전 생성자를 덮어쓰며 마지막 생성자의 형식에 따라 인스턴스화해야 합니다. .ization(매개변수는 마지막 생성자의 매개변수와 일치합니다). 따라서 클래스에서 하나의 생성자 메서드만 정의하는 것이 가장 좋습니다.

3 인스턴스 초기화에는 인스턴스 속성 정의 및 초기화 또는 클래스의 일부 메서드 호출이 포함됩니다.

4. 생성자는 self 이외의 다양한 매개변수(키워드 매개변수, 기본 매개변수, 튜플을 통한 매개변수 수집, 사전을 통한 키워드 매개변수 수집 등)를 가질 수 있으며, 실제 매개변수를 인스턴스화할 때 해당 매개변수를 전달할 수 있습니다. .

클래스의 객체가 생성되면 생성자가 즉시 호출됩니다.

구성 방법 init 사용법:

class FooBar:
    def __init__(self):
        self.somevar = 42
f = FooBar()
print f.somevar
(这里注意f = FooBar(),要带括号)
출력 결과:

42

매개변수를 사용한 구성

class FooBar:
    def __init__(self,value=42):
        self.somevar = value
f = FooBar("this is a constructor argument")
print f.somevar

출력 결과:

this is a constructor argument

위 내용은 Python 클래스의 생성자는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.