Python에서 함수 키워드 인수 적용

Patricia Arquette
풀어 주다: 2024-10-22 12:51:02
원래의
806명이 탐색했습니다.

Enforcement of function keyword arguments in Python

두 달 전 새로운 역할을 시작하기 전까지 Python으로 프로그래밍한 지 아주 오랜 시간이 흘렀습니다.

덧붙여 말하자면, 저는 지난 몇 년 동안 풀 스택 Javascript 또는 대부분 약간의 다른 언어(가장 최근에는 Go)가 포함된 Javascript와 관련된 역할을 계속 수행했습니다.

그래서 다른 언어, 특히 Python처럼 접근 가능한 언어로 근육을 조금 키우는 것이 즐거웠습니다.

제가 지금 즐기고 있는 언어의 기능 중 하나는 @dataclass 데코레이터에서 액세스할 수 있는 kw_only 속성을 사용하여 함수에 키워드 인수를 적용하는 것입니다.

다음과 같은 코드가 만들어집니다.

from dataclasses import dataclass

@dataclass(kw_only=True)
class Person:
    name: str
    age: int
    city: str

person1 = Person("Alice", 30, "New York")
로그인 후 복사

kw_only를 사용하면 다음과 같은 내용이 표시될 것으로 예상하므로 오류가 발생합니다.

from dataclasses import dataclass

@dataclass(kw_only=True)
class Person:
    name: str
    age: int
    city: str = "Unknown"

person1 = Person(name="Alice", age=30, city="New York")
로그인 후 복사

오류가 발생했지만:

TypeError     

Traceback (most recent call last)
Cell In[8], line 10
      7     city: str = "Unknown"

---> 10 person1 = Person("Alice", 30, "New York")

TypeError: Person.__init__() takes 1 positional argument but 4 were given
로그인 후 복사

제공되는 위치 인수가 너무 많다는 점을 알려준다는 점에서 "명확"합니다. kw_only에 익숙하지 않은 경우 함수를 올바르게 호출하는 것처럼 보이기 때문에 약간 혼란스러울 수 있습니다.

나처럼 Javascript/Typescript에 대한 배경 지식이 있거나 원하는 순서로 인수를 제공할 수 있는 구조체와 같은 것을 사용하여 이를 시행하는 Go 또는 Rust와 같은 언어에 대한 이전 경험이 있다면 속성이 객체/구조체의 모양을 따르기 때문에 이는 친숙하게 느껴지고 Python 코드에 추가되는 것을 환영할 것입니다.

이 기능은 다수의 인수로 작업하는 경우 특히 유용하며 일부 인수는 선택 사항일 수 있습니다.

위 내용은 Python에서 함수 키워드 인수 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿