は私が機能を持っていると仮定しヒントは
Q
は
34
A
答えて
58
あなたの戻り値の型は、あなたがOptional[datetime]
を使用する必要がありますNone
datetime
こと(datetime.utcnow()
から返される)か、どちらかので:
from typing import Optional
def get_some_date(some_argument: int=None) -> Optional[datetime]:
# as defined
ドキュメントから、Optional
はの省略形です:
Optional[X]
は等価です〜Union[X, None]
。Union[X, Y]
タイプX
又はY
の値を意味
。
あなたが原因他の人がそれが意味だ実現Optional
につまずくとしない場合があります懸念に明示的にしたい場合は、あなたが常にUnion
を使用することができます。
from typing import Union
def get_some_date(some_argument: int=None) -> Union[datetime, None]:
しかし、私は、これは良いアイデアです疑います、 Optional
は指標名であり、いくつかのキーストロークを保存します。
としてはUnion[T, type(None)]
にここtype
を使用するので、必要にtranformedされていないMichael0x2a Union[T, None]
@によってコメントで指摘しました。
視覚的にはこれらは異なる可能性がありますが、どちらの場合も結果はと全く同じです。オブジェクトをつかむために
>>> from typing import get_type_hints
>>> print(get_type_hints(get_some_date))
{'return': typing.Union[datetime.datetime, NoneType],
'some_argument': typing.Union[int, NoneType]}
*使用typing.get_type_hints
__annotations__
代わりにそれを直接アクセスする属性:Union[datetime.datetime, NoneType]
はget_some_date.__annotations__
*に保存されているタイプになります。
関連する問題
- 1. は、私は私はsesiionはjQueryの - AJAX
- 2. は後に私は、JSONは、私はエラー
- 3. は@Controllerはもはや@RequestMapping
- 4. 私はゲームエンジンは、私は
- 5. は、私は(カレーは、(F))ML
- 6. は「knownlanguagesは」キーは、クエリ
- 7. MyLinearLayout.getDrawingCacheは、()はNullPointerException
- 8. は、我々は
- 9. はCSS3 3Dは
- 10. はAttributeErrorは
- 11. は、Androidカウントダウンタイマーは
- 12. は、Gitはファイル
- 13. は、HTTPは
- 14. は、我々は
- 15. は、Ajaxは、サーバ
- 16. は、私はiPhone
- 17. はPyQtは
- 18. はNSPredicateはSwift3
- 19. は、私は
- 20. は、私はエクセル
- 21. hibernatetemplate.getSessionFactoryは、()はNullPointerException
- 22. VBAは - Application.EnableCancelKeyは
- 23. はjQueryのは、
- 24. は、私は
- 25. Djangoは:csrf_exemptは
- 26. は、メモリはJava
- 27. は、C#では
- 28. は、sem_unlink()はセマフォ
- 29. は `cin.getlineは()`
- 30. は、TextWriterTraceListenerは
[PEP 484](https://www.python.org/dev/peps/pep)に従って、Union [datetime、type(None)]を 'Union [datetime、None]'に単純化できます。 -0484 /#using-none)、型アノテーション内で 'None'を使うことは' type(None) 'と等価であると常に扱われます。 ( 'typing'ドキュメントは実際にはほとんどの場合' None'を使いますが、ここでは監視しません)。 – Michael0x2a
@ Michael0x2aは、興味深いことを知らなかった。それを追加しました:) –
私は先に進んで[a patch](http://bugs.python.org/issue28073)を提出してこれを直ちに修正しました。うまくいけば、ドキュメントは近い将来これについてより一貫性があります! – Michael0x2a