인클로징 클래스 유형으로 메소드 유형 힌트
Python에서는 힌트 메소드를 입력하여 인수의 예상 유형을 지정할 수 있습니다. 그리고 반환 값. 그러나 바깥쪽 클래스 유형을 참조하는 메서드를 처리할 때 Python의 동적 특성으로 인해 모호성에 직면할 수 있습니다.
전방 참조 문제
다음을 고려하세요. 다음 코드 조각:
class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: 'Position') -> 'Position': return Position(self.x + other.x, self.y + other.y)
여기서 __add__ 메서드는 또 다른 Position 인스턴스를 기대합니다. 인수로 사용하고 Position 인스턴스를 반환합니다. 그러나 Python은 유형 힌트에서 전방 참조를 허용하지 않으므로 주석에 Position 클래스 이름을 직접 사용하면 오류가 발생합니다.
정방향 참조에 'Self' 사용(Python 3.11)
Python 3.11에서 PEP 673이 도입되면서 타이핑에서 Self 유형을 사용할 수 있습니다. 모듈. Self를 사용하면 바깥쪽 클래스 유형에 대한 전방 참조가 허용됩니다.
from typing import Self class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Self) -> Self: return Position(self.x + other.x, self.y + other.y)
'from future 가져오기 주석'(Python 3.7)
을 사용합니다. Python 3.7 이상에서는 from __future__ import 주석 future 문을 사용하면 다음의 평가를 연기할 수 있습니다. 주석. 이는 유형 주석이 문자열로 저장되고 나중에 모듈이 완전히 로드될 때 평가된다는 것을 의미합니다.
from __future__ import annotations class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: 'Position') -> 'Position': return Position(self.x + other.x, self.y + other.y)
정방향 참조에 문자열 사용(3.7보다 오래된 Python 버전)
Python 3.7 이전에는 클래스 이름 대신 문자열을 사용하는 것이 전달에 권장되는 접근 방식이었습니다. 참조:
class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: 'Position') -> 'Position': return Position(self.x + other.x, self.y + other.y)
이러한 유형 힌트가 발생하기 전에 클래스 정의가 발견되는 한 이는 작동합니다. 그러나 유형 힌트를 위해 문자열을 사용하는 것은 모든 코드 편집기나 분석 도구에서 지원되지 않을 수 있다는 점에 유의하는 것이 중요합니다.
위 내용은 Python에서 바깥쪽 클래스 유형을 사용하여 메소드에 힌트를 입력하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PythonuseSahybrideactroach, combingingcompytobytecodeandingretation.1) codeiscompiledToplatform-IndependentBecode.2) bytecodeistredbythepythonvirtonmachine, enterancingefficiency andportability.

"for"and "while"loopsare : 1) "에 대한"loopsareIdealforitertatingOverSorkNowniterations, whide2) "weekepindiTeRations.Un

Python에서는 다양한 방법을 통해 목록을 연결하고 중복 요소를 관리 할 수 있습니다. 1) 연산자를 사용하거나 ()을 사용하여 모든 중복 요소를 유지합니다. 2) 세트로 변환 한 다음 모든 중복 요소를 제거하기 위해 목록으로 돌아가지 만 원래 순서는 손실됩니다. 3) 루프 또는 목록 이해를 사용하여 세트를 결합하여 중복 요소를 제거하고 원래 순서를 유지하십시오.

fastestestestedforListCancatenationInpythondSpendsonListsize : 1) Forsmalllist, OperatoriseFficient.2) ForlargerLists, list.extend () OrlistComprehensionIsfaster, withextend () morememory-efficientBymodingListsin-splace.

toInsertElmentsIntoapyThonList, useAppend () toaddtotheend, insert () foraspecificposition, andextend () andextend () formultipleElements.1) useappend () foraddingsingleitemstotheend.2) useinsert () toaddatespecificindex, 그러나)

pythonlistsareimplementedesdynamicarrays, notlinkedlists.1) thearestoredIntIguousUousUousUousUousUousUousUousUousUousInSeripendExeDaccess, LeadingSpyTHOCESS, ImpactingEperformance

PythonoffersfourmainmethodstoremoveElementsfromalist : 1) 제거 (값) 제거 (값) removesthefirstoccurrencefavalue, 2) pop (index) 제거 elementatAspecifiedIndex, 3) delstatemeveselementsByindexorSlice, 4) RemovesAllestemsfromTheChmetho

Toresolvea "permissionDenied"오류가 발생할 때 오류가 발생합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기