예외가 발생합니까? UUID()가 조용히 실패합니까? 'myStatus'가잘못된 인수가 uuid.UUID()에 입력되면 어떻게됩니까?
myStatus = True
myUUID = uuid.UUID(someWeirdValue)
if myUUID == None:
myStatus = False
일 때와 같은 상황이 있습니까?
예외가 발생합니까? UUID()가 조용히 실패합니까? 'myStatus'가잘못된 인수가 uuid.UUID()에 입력되면 어떻게됩니까?
myStatus = True
myUUID = uuid.UUID(someWeirdValue)
if myUUID == None:
myStatus = False
일 때와 같은 상황이 있습니까?
는 UUID()
생성자는 제기 중 하나 TypeError
또는 ValueError
, A의 통과가 hex
, bytes
는, bytes_le
는, fields
, 또는 int
옵션이 TypeError
를 제기의 전달하지
전달 된 내용에 따라.
,>>> uuid.UUID()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/uuid.py", line 129, in __init__
raise TypeError('need one of hex, bytes, bytes_le, fields, or int')
TypeError: need one of hex, bytes, bytes_le, fields, or int
>>> uuid.UUID('abcd')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/uuid.py", line 134, in __init__
raise ValueError('badly formed hexadecimal UUID string')
ValueError: badly formed hexadecimal UUID string
>>> uuid.UUID(bytes='abcd')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/uuid.py", line 144, in __init__
raise ValueError('bytes is not a 16-char string')
ValueError: bytes is not a 16-char string
등
: 유효하지 않은 값이ValueError
제기
아니요이 자동으로 실패합니다. 확실히 None
을 반환하지 않습니다. myUUID
이 UUID
인스턴스로 설정되었거나 예외가 발생했습니다.
UUID
class은 __new__
을 덮어 쓰지 않으므로 uuid.UUID
인스턴스가 아닌 다른 것을 반환 할 수는 없습니다.
모듈에 의해 제공된 UUID 팩터 리인 uuid1
에서 uuid4
까지의 팩터 리로 인해 None
을 반환하는 버그가있을 수 있습니다. 그들의 implementation에 대략적인 눈으로 판단 할 때, 그러한 버그는 보이지 않습니다. UUID 객체가 어떤 결함으로 인해 None
이든간에 uuid
모듈은 믿을만한 범인이 아닙니다.
편의상 모든 메소드는'UUID' 인스턴스를 반환하거나 예외를 발생시킵니다. 아무도 '없음'을 반환 할 가능성은 없습니다. –
@MartijnPieters 동의했다. 그러나 확실하게하기 위해 각각의 코드를 연구해야한다. 반면에, 클래스가'__new__'을 정의하지 않는다는 사실 (또는 메타 클래스를 지정)에 의해 구성이 명확합니다. – user4815162342
그것이 내가 한 일입니다. 기능은 충분히 간단합니다. 나는 확신한다. :-) –
내 질문의 두 번째 부분은 어떻게됩니까? 'myStatus'가 False와 동일한 상황이 있습니까? – zakdances
@yourfriendzak : 아니요, 여러분이'UUID' 인스턴스를 얻거나 예외를 발생시키기 때문입니다. –