친절한LOGIN

친절한

1. 클래스 정의

클래스 정의의 구문 형식은 다음과 같습니다.

class ClassName:
    <statement-1>
    .
    .
    .
    <statement-N>

클래스도 속성과 메소드로 구성됩니다. 클래스를 정의할 때 클래스의 속성을 설정해야 하는 경우가 있습니다. 따라서 생성자가 필요합니다

클래스 생성자는 다음과 같습니다.

def __init__(self,[...):

클래스가 init() 메서드를 정의하는 경우 클래스의 인스턴스화 작업은 자동으로 init() 메서드를 호출합니다.

그런 다음 생성자가 소멸자와 일치하는 경우 클래스가 생성될 때 생성자를 사용하여 속성을 설정할 수 있으며 클래스가 소멸되면 소멸자가 호출됩니다.

소멸자 구문은 다음과 같습니다.

def __del__(self,[...):

클래스 메소드는 일반 함수와 특별한 차이가 있다는 것을 알게 될 것입니다. 관례상 이름은 self 입니다.

그렇다면 자아는 무엇을 상징하나요?

예제를 보고 이를 통해 답을 찾을 수 있습니다.

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class Test:
    def prt(self):
        print(self)
        print(self.__class__)
t = Test()
t.prt()

출력 결과 관찰:

776927ef1b515b00d2ff42650fd27f4.png실행 결과에서 self는 클래스의 인스턴스를 나타내고 출력은 현재 개체라는 것이 분명합니다. 주소, self.__class__는 클래스를 가리킵니다.

물론 self는 파이썬 키워드가 아니므로 다른 문자로 바꾸면 정상적으로 실행될 수 있다는 뜻입니다. self를 사용하는 데 익숙할 뿐입니다

2. Python 클래스 정의의 역사적 문제

Python 버전의 반복에는 클래스에 대한 역사적 문제가 있는데, 이것이 바로 새로운 스타일의 클래스 문제입니다. 구체적으로 먼저 다음 코드를 살펴보세요.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# 旧式类
class OldClass:
    pass
# 新式类
class NewClass(object):
    pass

여기서는 클래스를 정의하는 다양한 방법이 사용되는 것을 볼 수 있습니다. 가장 큰 차이점은 Python2에서는 객체 클래스를 상속한다는 것입니다. 클래스를 정의할 때 가장 좋습니다. 물론 새로운 스타일의 클래스를 정의하는 것은 Python3의 모든 클래스가 새로운 스타일의 클래스이기 때문에 Python3에서는 이 문제가 존재하지 않습니다.

그렇다면 새로운 스타일의 클래스와 이전 스타일의 클래스의 차이점은 무엇인가요?

다음 코드를 실행하세요.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# 旧式类
class OldClass:
    def __init__(self, account, name):
        self.account = account;
        self.name = name;
# 新式类
class NewClass(object):
    def __init__(self, account, name):
        self.account = account;
        self.name = name;
if __name__ == '__main__':
    old_class = OldClass(111111, 'OldClass')
    print(old_class)
    print(type(old_class))
    print(dir(old_class))
    print('\n')
    new_class=NewClass(222222,'NewClass')
    print(new_class)
    print(type(new_class))
    print(dir(new_class))

출력 결과를 주의 깊게 관찰하고 비교하면 새로운 스타일의 클래스와 문제가 없기 때문에 Python3의 출력 결과가 완전히 동일하다는 점에 유의하세요. Python3의 구식 클래스.

다음 섹션
코스웨어