우리 모두 알고 있듯이 Python은 약한 유형의 언어입니다. 대부분의 경우 함수 매개변수 유형이나 반환 값 유형을 알기가 어렵습니다. 이로 인해 함수가 전달해야 하는 매개변수가 무엇인지, 이후에 어떤 유형의 결과가 반환되는지를 잊어버릴 수 있습니다. 일정 시간 동안 불필요한 문제가 발생하는 경우 타이핑 모듈은 이 문제를 매우 잘 해결할 수 있습니다.
타이핑의 주요 기능은 다음과 같습니다.
개발 문서에 추가 설명으로, 사용 시 전달되고 반환되는 매개변수의 유형을 사용자가 이해하면 편리합니다.
유형 검사는 런타임 중 매개변수 및 반환 값 유형의 불일치를 방지합니다. 모듈을 추가해도 프로그램 실행에 영향을 미치지 않으며 공식적인 오류가 보고되지 않습니다. Pycharm은 입력을 지원하며 오류를 확인할 때 노란색 경고가 나타납니다.
문법:
def 函数名(参数名: 数据类型)-> 返回值类型:pass
变量名: 数据类型 = 变量值
일반적인 라벨 유형:
Union: Union[X, Y]는 변수(매개변수)가 X 유형이거나 Y 유형임을 의미합니다.
선택사항: Optional[X]는 Union[X, None]과 동일합니다. 즉, 기본적으로 변수(매개변수)가 None이 되도록 허용합니다.
튜플: 예: person: Tuple[str, int, float] = ('Mike', 22, 1.75), 이는 person이 튜플이고 내부 요소 유형이 각각 str, int, float임을 나타냅니다.
List: 예: var: List[int or float] = [2, 3.5], 이는 var가 리스트이고 내부 요소가 int 또는 float 유형일 수 있음을 나타냅니다. var: List[List[int]] = [[ 1, 2] , [2, 3]], 분명히 조합해서 사용된 것입니다.
Dict: 예: dic: Dict[str, int], dic이 str 유형의 키와 int 유형의 값을 가진 사전임을 나타냅니다.
Sequence: 변수나 매개변수가 리스트 타입인지 튜플 타입인지 엄밀히 구분할 필요가 없는 경우에는 List와 사용법이 유사한 Sequence라는 좀 더 일반적인 타입을 사용할 수 있습니다.
2. 주장 주장
Assert는 일반적으로 다음 코드의 정확성을 확인하기 위해 코드 디버깅에 사용됩니다. 조건이 충족되면(올바른) 프로그램은 자동으로 역방향으로 실행되고, 조건이 충족되지 않으면(오류) 현재 프로그램이 중단되고 AssertionError를 생성합니다.
예:
a =-1assert a <0assert a >0
3. @property 데코레이터 및 setter 데코레이터
예시 및 소개:
Python은 @property装饰器、setter装饰器속성으로 사용할 수 있는 장식된 메서드를 제공합니다.
예를 들어 , 내부 속성을 Exam직접 조작하는 것을 방지하기 위해 클래스를 정의하여 캡슐화 역할을 하는 제공된 메서드를 통해 속성을 간접적으로 제어하고 외부 세계에 노출되기를 원하지 않는 일부 속성을 숨깁니다. , 그러나 사용자가 조작할 수 있는 방법만 제공하며, 해당 방법에서 매개변수의 합리성 등을 확인할 수 있습니다._scoreproperty装饰器、setter装饰器
classExam(object):def__init__(self, score):
self._score = score
@propertydefscore(self):# 属性访问return self._score
@score.setterdefscore(self, val):# 属性赋值if val <0:
self._score =0elif val >100:
self._score =100else:
self._score = val
if __name__ =='__main__':
e = Exam(60)print(e.score)
e.score =90print(e.score)
e.score =200print(e.score)
4. *args 및 **kwargs
둘 다 Python의 가변 매개변수입니다.
args합계는 kwargs마음대로 수정할 수 있으며 초점은 *합계 에 맞춰져 있다는 점은 주목할 가치가 있습니다 **.