Python ellipsis의 사용법 상세 설명
Python의 기본 유형 중 단일 모드의 값은 세 개의 None 유형의 None, NotImplemented 유형의 NotImplemented, Ellipsis 유형의...
None은 이미 썩은 거리를 썼고, Not Implemented도 비교적 자주 사용하는데, 유독...강호에서는 그것이 3대 거두 중의 하나라는 것만 알지만 그 용법을 모른다.
Ellipsis
Ellipsis는python에서'생략'을 대표하는데, 현재의 유형어로 표현하면'늙은 철, 이런 디테일에 신경 쓰지 마!'이다.언제 다른 사람에게 이런 세부 사항을 신경 쓰지 말라고 말해야 합니까?그중의 한 장면은 바로 랜덤 값이다.
문서 테스트용
가령 우리가 하나의 종류를 작성했다면, 이것이 문법 차원의 오류가 있는지 알고 싶다면, 간단하게 호출하기만 하면 테스트할 수 있다.이 테스트를 자동화하기 위해 문서 테스트를 만들었다.
#!/usr/bin/evn python3
class Person(object):
"""
Parameters:
----------
name: str
age: int
Return:
------
>>> Person()
<main.Person object at 0x7ff36c1ca250>
"""
name = ''
age = 0
def __init__(self, name: str = 'tom', age: int = 10) -> 'Person':
"""
"""
self.name = name
self.age = age
def say_hello(self) -> str:
"""
"""
return f"Hello My name is {self.name} ."
우리가 테스트 용례를 실행할 때 오류를 보고합니다. 왜냐하면 매번 만들어진 대상의 메모리 주소는 테스트 용례에서 지정한 것과 같지 않고, 우리의 용례에 기록되어 있기 때문입니다.물론 이 문제는 유니테스트로 해결할 수 있지만, 이것은 여기서 말할 것이 아니다.
python3 -m doctest main.py -v
Trying:
Person()
Expecting:
<main.Person object at 0x7ff36c1ca250>
**********************************************************************
File "/private/tmp/main.py", line 12, in main.Person
Failed example:
Person()
Expected:
<main.Person object at 0x7ff36c1ca250>
Got:
<main.Person object at 0x7fe4e078ac70>
3 items had no tests:
main
main.Person.__init__
main.Person.say_hello
**********************************************************************
1 items had failures:
1 of 1 in main.Person
1 tests in 4 items.
0 passed and 1 failed.
***Test Failed*** 1 failures.
어떻게 해야만 Doctest 이 늙은 철에게 되돌아오는 값의 세부 사항을 신경 쓰지 말라고 알려줄 수 있습니까?답은 Ellipsis라는 지령을 덧붙여 개조한 코드는 다음과 같다.
#!/usr/bin/evn python3
class Person(object):
"""
Parameters:
----------
name: str
age: int
Return:
------
>>> Person() #doctest: +ELLIPSIS
<main.Person object at 0x...>
"""
name = ''
age = 0
def __init__(self, name: str = 'tom', age: int = 10) -> 'Person':
"""
"""
self.name = name
self.age = age
def say_hello(self) -> str:
"""
"""
return f"Hello My name is {self.name} ."
운행 테스트 용례는 이제 통과할 수 있다.
python3 -m doctest main.py -v
Trying:
Person() #doctest: +ELLIPSIS
Expecting:
<main.Person object at 0x...>
ok
3 items had no tests:
main
main.Person.__init__
main.Person.say_hello
1 items passed all tests:
1 tests in main.Person
1 tests in 4 items.
1 passed and 0 failed.
Test passed.
기타만약 우리가 모듈을 위해 테스트 용례를 추가한다면, 이렇게 하면 좀 편리할 것이다.
#!/usr/bin/evn python3
class Person(object):
"""
Parameters:
----------
name: str
age: int
Return
------
>>> Person() #doctest: +ELLIPSIS
<...Person object at 0x...>
"""
name = ''
age = 0
def __init__(self, name: str = 'tom', age: int = 10) -> 'Person':
"""
"""
self.name = name
self.age = age
def say_hello(self) -> str:
"""
"""
return f"Hello My name is {self.name} ."
if __name__ == "__main__":
# import __name__ “__main__” ,
#
import doctest
doctest.testmod()
이상은 Python ellipsis의 용법에 대한 상세한 내용입니다. 더 많은 Python ellipsis에 관한 자료는 저희 다른 관련 문장을 주목하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.