TLDR: Persamaan idiomatik dari void
anotasi tipe kembalian adalah -> None
.
def foo() -> None:
...
Ini cocok dengan fungsi yang tidak return
atau hanya kosong return
mengevaluasi None
.
def void_func():
pass
print(void())
Menghilangkan tipe pengembalian tidak berarti tidak ada nilai pengembalian. Sesuai PEP 484 :
Untuk fungsi yang dicentang, anotasi default untuk argumen dan tipe kembaliannya adalah Any
.
Ini berarti nilai dianggap diketik secara dinamis dan mendukung operasi apa pun secara statis . Secara praktis, arti kebalikan dari void
.
Mengisyaratkan tipe dengan Python tidak secara ketat membutuhkan tipe sebenarnya. Sebagai contoh, penjelasan dapat menggunakan string dari nama jenis: Union[str, int]
, Union[str, 'int']
, 'Union[str, int]'
dan berbagai varian yang setara.
Demikian pula, anotasi jenis None
dianggap berarti "dari NoneType
". Ini dapat digunakan tidak hanya untuk tipe pengembalian, meskipun Anda akan paling sering melihatnya di sana:
bar : None
def foo(baz: None) -> None:
return None
Ini juga berlaku untuk tipe generik. Misalnya, Anda dapat menggunakan None
in Generator[int, None, None]
untuk menunjukkan generator tidak mengambil atau mengembalikan nilai.
Meskipun PEP 484 menunjukkan bahwa None
berarti type(None)
, Anda tidak harus menggunakan bentuk terakhir eksplisit. Spesifikasi petunjuk tipe tidak menyertakan bentuk apa pun type(...)
. Ini secara teknis adalah ekspresi runtime, dan dukungannya sepenuhnya bergantung pada pemeriksa jenis. The mypy
proyek mempertimbangkan untuk membuang dukungan untuk type(None)
dan menghapusnya dari 484 juga.
Atau mungkin kita harus memperbarui PEP 484 agar tidak menyarankan yang type(None)
valid sebagai sebuah tipe, dan None
apakah satu-satunya ejaan yang benar? Seharusnya ada satu - dan sebaiknya hanya satu - cara yang jelas untuk melakukannya, dll.
--- JukkaL, 18 Mei 2018
void
tipe kembalian. Fungsi apa pun (atau cabang dalam suatu fungsi) tanpa eksplisitreturn
akan kembaliNone
. Saya berasumsi OP memahami bahwa, komentar ini sebagian besar untuk kepentingan pembaca di masa mendatang ...