Programing

Python : help () 출력에서 ​​슬래시는 무엇을 의미합니까?

crosscheck 2020. 7. 24. 07:36
반응형

Python : help () 출력에서 ​​슬래시는 무엇을 의미합니까?


닫는 괄호 앞에 /파이썬 3.4의 help출력 에서 의미 하는 것은 무엇입니까 range?

>>> help(range)
Help on class range in module builtins:

class range(object)
 |  range(stop) -> range object
 |  range(start, stop[, step]) -> range object
 |  
 |  Return a virtual sequence of numbers from start to stop by step.
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      Return key in self.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.

                                        ...

키워드 전용 매개 변수로 사용할 수없는 매개 변수위치 전용 매개 변수 의 끝을 나타냅니다 . 이러한 매개 변수는 C API에서만 지정할 수 있습니다.

이는 순수 파이썬 함수에서 위치 인수로 있는 키워드 인수 ( )가 아닌 위치 ( ) 로만 key인수를 __contains__전달할 수 있음을 의미합니다 .range(5).__contains__(3)range(5).__contains__(key=3)

Argument Clinic 설명서 도 참조하십시오 .

Argument Clinic에서 모든 매개 변수를 위치 전용으로 표시하려면 /매개 변수 행과 동일하게 들여 쓰기하여 마지막 매개 변수 다음에 한 행만 추가하십시오 .

그리고 파이썬 FAQ에 (최근에 추가 된) :

함수의 인수 목록에서 슬래시는 그 앞에있는 매개 변수가 위치 전용임을 나타냅니다. 위치 전용 매개 변수는 외부에서 사용할 수있는 이름이없는 매개 변수입니다. 위치 전용 매개 변수를 허용하는 함수를 호출하면 인수는 해당 위치만을 기준으로 매개 변수에 매핑됩니다.

이 구문은 나중에 파이썬에 포함될 수 있도록 정의되었습니다 ( PEP 457- 위치 전용 매개 변수 구문 참조) .

이 PEP는 최근에 부활 하여 Python에 포함되도록 승인 되었습니다 . 파이썬 3.8이 아직 알파 단계에 있기 때문에 참조 구현이 얼마나 빨리 완료 되는지에 따라 해당 버전 또는 3.9에서 현실이 될 수 있습니다.

위치 전용 매개 변수는보다 깨끗하고 명확한 API로 이어질 수 있으며, 그렇지 않으면 C 전용 모듈의 순수 Python 구현을보다 일관되고 유지 관리하기가 쉬워지며 위치 전용 매개 변수는 처리가 거의 필요하지 않기 때문에 더 빠른 Python 코드로 이어집니다.


나는이 질문을 스스로했다. :) /원래 Guido가 여기 에서 제안한 것을 발견했습니다 .

다른 제안 : '/'사용은 어떻습니까? '키워드 인수'를 의미하는 '*'와 반대되는 개념이며 '/'는 새로운 문자가 아닙니다.

그리고 그의 제안 은 이겼다 .

허. 그것이 사실이라면 내 '/'제안이 이깁니다.

 def foo(pos_only, /, pos_or_kw, *, kw_only): ...

이것에 관한 매우 관련성이 높은 문서는 PEP 570 이라고 생각합니다 . 요약 섹션이 멋지게 보이는 곳.

요약

유스 케이스는 함수 정의에 사용할 매개 변수를 결정합니다.

 def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):

지침으로 :

이름이 중요하지 않거나 의미가없는 경우 위치 전용을 사용하고 항상 동일한 순서로 전달되는 인수가 몇 개만 있습니다. 이름에 의미가 있고 이름으로 명시 적으로 정의하여 함수 정의를보다 잘 이해할 수있는 경우 키워드 만 사용하십시오.


함수가로 끝나는 경우 /

def foo(p1, p2, /)

이것은 모든 기능적 주장이 위치적임을 의미합니다.

참고 URL : https://stackoverflow.com/questions/24735311/python-what-does-the-slash-mean-in-help-output

반응형