파이썬에서 _init_의 의미

Person은 클래스이고 _init_는 특별한 메서드 (init는 단어 초기화의 생략 된 형태)로, 클래스를 사용하여 객체를 생성 한 후 실행되며 새로 생성 된 객체의 속성을 초기화하는 데 사용됩니다.

self.name = name은 속성을 초기화하는 명령문입니다.

_init_는 메소드입니다.이 메소드에는 self, name 및 age의 세 가지 형식 매개 변수가 있습니다. 자아는 대상 자체를 나타내고, 그것을 부르는 사람은 누구든 나타냅니다.

여기서 self.name = name 및 self.age = age는 외부에서 전달 된 이름과 나이가 self 객체의 이름과 나이 속성에 할당되었음을 나타냅니다.

다음은 생성 대상입니다. P = Person ( 'Xiaoming', 20) ---------이 문장은 특정 사람을 만들고이 사람에게 Xiaoming라는 이름을 부여하고 Xiaoming를 지정합니다. 나이는 20 세입니다. , 객체 Xiaoming는 변수 p에 할당됩니다. 이때 p는 사람 (객체) Xiaoming를 나타냅니다.

이 문장은 사람 객체 (Xiao Ming)가 생성되고 init (self, name, age) 메서드가 호출되어 그 사람의 속성 초기화를 완료하는 것을 의미합니다. Xiao Ming은 이름에 값을 할당하고 20을 할당합니다. 나이 속성.

그리고 self는 매개 변수를 전달할 필요가 없습니다. slef는 객체 자체를 나타내고 그것을 호출하는 사람은 누구를 나타 내기 때문입니다. 이때 self는 P 인 Person ( 'Xiao Ming', 20)을 나타냅니다.

즉, p를 생성하고 p의 속성에 값을 할당했습니다. 이때 p는 속성 값을 가진 사람을 나타냅니다.

.사용 하여 개체의 속성을 호출 할 수 있습니다 ( 예 : p의 이름 및 나이 출력). 전체 코드는 다음과 같습니다.

 

예:

다음으로 자기 소개를 위해 Person 클래스에 메서드를 정의합니다.

def desc(self):
    print("我叫%s,今年%d岁" % (self.name, self.age))

클래스 내부에서는 self를 통해 자신의 속성과 메서드에 접근해야합니다. Self는 클래스 내부의 외부 객체를 표현한 것입니다. 이때 p를 사용하여 메서드를 호출 할 수 있습니다. 전체 코드는 다음과 같습니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def desc(self):
        print("我叫%s,今年%d岁" % (self.name, self.age))
p = Person('杰拉考', 200)
# 调用自我介绍方法 desc方法中的self就是外部的这个p
p.desc()

출력은 다음과 같습니다.

我叫杰拉考,今年200岁

현재 desc 메서드의 self는 외부 객체 p입니다. 다른 객체 p2를 정의하면 p2가 desc를 호출 할 때 desc의 self는 객체 p2를 나타냅니다. 속담 :谁调用,就表示谁

추천

출처blog.csdn.net/m0_55389447/article/details/114961795