내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
본 글에서는 주로 Python의 클래스와 객체의 클래스 메소드와 정적 메소드를 소개하고, 클래스 메소드와 정적 메소드의 정의, 특징, 응용 시나리오와 사용 방법을 소개하고, 둘을 비교한다.
아마도 인터넷을 시작하는 데 가장 적합한 객체 지향 프로그래밍 튜토리얼: Python 구현 - 임베디드 매니아라면 꼭 읽어야 할 책입니다!
전체 인터넷에서 시작하기 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 00 객체지향 설계 방법 소개
시작을 위한 가장 적합한 인터넷상의 객체지향 프로그래밍 튜토리얼: 01 객체지향 프로그래밍의 기본 개념
시작을 위한 가장 적합한 인터넷 객체지향 프로그래밍 튜토리얼: 02 클래스 및 객체의 Python 구현 - Python을 사용하여 클래스 생성
인터넷 시작을 위한 가장 적합한 객체 지향 프로그래밍 튜토리얼: 03 클래스 및 객체의 Python 구현 - 사용자 정의 클래스에 속성 추가
인터넷 시작을 위한 가장 적합한 객체 지향 프로그래밍 튜토리얼: 04 클래스 및 객체의 Python 구현 - 사용자 정의 클래스에 메서드 추가
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 05 클래스 및 객체의 Python 구현 - PyCharm 코드 태그
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 06 클래스 및 객체의 Python 구현 - 사용자 정의 클래스의 데이터 캡슐화
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 07 클래스 및 객체의 Python 구현 - 유형 주석
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 08 클래스 및 객체의 Python 구현-@property 데코레이터
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 09 클래스와 객체의 Python 구현 - 클래스 간의 관계
인터넷 초보자를 위한 가장 적합한 객체지향 프로그래밍 튜토리얼: 클래스와 객체의 10가지 Python 구현 - 클래스 상속 및 Liskov 대체 원칙
인터넷 초보자를 위한 가장 적합한 객체 지향 프로그래밍 튜토리얼: 11개 클래스 및 객체의 Python 구현 - 하위 클래스가 상위 클래스 메서드 호출
인터넷 초보자를 위한 가장 적합한 객체 지향 프로그래밍 튜토리얼: 13개 클래스 및 객체의 Python 구현 - 시각적 코드 판독 아티팩트 Sourcetrail 설치 및 사용
반달의 작업 끝에 임베디드 기술 스택 요약이 공개됩니다.
무술대회 우승 비결: 05. 전자컴퓨터대회에서 전국시상팀의 업무와 학습 내용을 나누는 방법
대회에서 우승하는 무술의 비밀: 04 전자 대회의 임베디드 개발을 위한 빠르고 꼭 읽어야 할 가이드
대회에서 우승하는 무술 비결: 03 창의적이고 좋은 선택 - 국가상을 받기 위한 가장 필요한 전제조건
대회 우승 무술 비결: 02 전국 수상 비결 - 대학생 컴퓨터 대회의 빠른 시작 과정, 초보자가 꼭 읽어야 할 필독서
대회 우승 무술 비결: 01 현대 대학 대회에서 나타나는 '구르기', '전래 행사', '인맥 찾기' 현상을 어떻게 보시나요?
대회 우승 무술 비결: 00 과목대회 - 공과대학 학생들은 피할 수 없는 주제, 얼마나 알고 계시나요?
전자 및 컴퓨터 대회의 "무술 비밀" - 전자 대회 광전자 공학 디자인 대회 컴퓨터 디자인 대회 임베디드 칩 및 시스템 디자인 대회, 필요한 모든 것이 여기에 있습니다!
다음 링크를 방문하여 문서를 다운로드할 수 있습니다.
https://github.com/leezisheng/Doc
이 문서에서는 주로 객체 지향 프로그래밍에 Python을 사용하는 방법을 소개하며 독자가 Python 구문 및 마이크로컨트롤러 개발에 대한 기본적인 이해가 필요합니다. Python 객체 지향 프로그래밍을 설명하는 다른 블로그나 책과 비교하여 이 문서는 더 상세하며 상위 컴퓨터의 일반적인 직렬 포트 데이터 송수신, 데이터 처리, 동적 그래프 그리기 등을 사용하는 임베디드 호스트 컴퓨터 응용 프로그램에 중점을 둡니다. 응용 사례로 낮은 컴퓨터를 사용하고 Sourcetrail 코드 소프트웨어를 사용하여 독자의 이해를 돕기 위해 코드를 시각적으로 읽습니다.
관련 샘플 코드 링크는 다음과 같습니다.https://github.com/leezisheng/Python-OOP-데모
SensorClass 클래스를 예로 들면, 클래스에 정의된 소위 InitSensor, StartSensor, StopSensor 등의 메소드는 다음과 같습니다.객체 메소드즉, 이러한 메서드는 모두 개체에 전송된 메시지이며 모두 개체의 속성을 호출합니다.실제로 클래스에 작성하는 메서드는 개체 메서드일 필요는 없습니다. 예를 들어 InitSensor 메서드에는 현재 개체 속성을 호출할 필요가 없는 메서드가 있습니다. COM 포트가 존재합니다. 분명히 이 방법은 센서 개체와는 다릅니다.
또 다른 예로, "Triangle" 클래스를 정의하고 세 개의 변 길이를 전달하여 삼각형을 구성하고 둘레와 면적을 계산하는 메서드를 제공합니다. 그러나 전달된 변 길이 3개로는 삼각형 객체를 구성하지 못할 수도 있습니다. 먼저 세 변의 길이가 삼각형을 형성할 수 있는지 확인하는 메서드를 작성할 수 있습니다. 이 메서드가 호출될 때 삼각형 개체가 생성되지 않았기 때문에(세 변이 삼각형을 형성할 수 있는지 알 수 없기 때문에) 이 메서드는 분명히 개체 메서드가 아닙니다. 삼각형을 형성함) 따라서 이 메소드는 Triangle 클래스이지만 삼각형 객체는 아닙니다.우리는 사용할 수 있습니다정적 방법이런 종류의 문제를 해결하기 위해 코드는 다음과 같습니다.
@staticmethod
_# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
def IsTrueID(id:int = 0):
if id >= 0 and id <= 99:
return True
else:
return False
정적 메서드는 실제로 우리가 배운 함수입니다. 정적 메서드는 클래스 공간(클래스 네임스페이스)에 정의되고 함수는 프로그램이 위치한 공간(전역 네임스페이스)에 정의된다는 점만 다릅니다. . 정적 메소드에는 self 및 cls와 같은 특수 매개변수가 없으므로 Python 인터프리터는 포함된 매개변수에 대해 클래스 또는 객체 바인딩을 수행하지 않습니다. 이로 인해 클래스의 정적 메서드에서는 클래스 특성과 클래스 메서드를 호출할 수 없습니다. 여기서는 센서 ID 번호가 올바른지 확인하기 위해 IsPort 정적 메서드를 정의합니다. 정적 메서드는 @staticmethod로 수정해야 합니다. 정적 메서드를 호출하려면 클래스 이름이나 클래스 객체를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
_ # 设置ID号_
id = 1
_ # 判断ID号是否符合格式_
if SensorClass.IsTrueID(id):
s = SensorClass()
else:
print("Sensor Init False")
정적 메서드와 유사하게 Python은 클래스에서 클래스 메서드를 정의할 수도 있습니다. 클래스 메서드의 첫 번째 매개 변수는 일반적으로 cls로 명명되며, 이는 현재 클래스와 관련된 정보의 개체를 나타냅니다(클래스 자체도 개체이며 일부에서는). 클래스의 메타데이터 객체라고 하는 이 매개변수를 통해 클래스와 관련된 정보를 얻고 클래스의 객체를 생성할 수 있습니다. Python은 자동으로 클래스 자체를 cls 매개변수에 바인딩합니다(클래스 객체에 바인딩되지 않음에 유의하세요). ) . 즉, 클래스 메소드를 호출할 때 cls 매개변수에 대한 매개변수를 명시적으로 전달할 필요가 없습니다.
클래스 메소드는 @classmethod 수정자를 사용하여 수정해야 합니다. MasterClass에서 클래스 메소드 MasterInfo를 정의합니다.
@classmethod
def MasterInfo(cls):
print("Info : "+str(cls))
print(MasterClass.MasterInfo())