두 달 전 새로운 역할을 시작하기 전까지 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!