Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menentukan Jenis Fungsi dalam Anotasi Python Menggunakan `typing.Callable`?

Bagaimanakah Saya Boleh Menentukan Jenis Fungsi dalam Anotasi Python Menggunakan `typing.Callable`?

Susan Sarandon
Susan Sarandonasal
2024-11-30 20:55:13304semak imbas

How Can I Specify Function Types in Python Annotations Using `typing.Callable`?

Menentukan Jenis Fungsi dalam Anotasi

Dalam pembayang jenis Python, menyatakan jenis pembolehubah sebagai fungsi adalah penting untuk memastikan ketepatan kod. Walaupun kekurangan penaipan eksplisit. Anotasi jenis fungsi, terdapat penyelesaian menggunakan menaip. Boleh Dipanggil.

Menggunakan menaip.Boleh Dipanggil untuk Jenis Fungsi

Seperti yang ditunjukkan oleh @jonrsharpe keluar, menaip.Boleh Dipanggil membolehkan kami menentukan jenis fungsi dalam anotasi. Contohnya:

from typing import Callable

def my_function(func: Callable):

Di sini, fungsi pembolehubah ditandakan jenis sebagai fungsi yang menerima sebarang nombor dan jenis argumen dan mengembalikan nilai apa-apa jenis.

Menentukan Jenis Input dan Pulangan

Untuk anotasi yang lebih tepat, kami boleh menentukan lagi jenis argumen input dan jenis pemulangan fungsi. Pertimbangkan contoh berikut:

def sum(a: int, b: int) -> int:
  return a + b

Anotasi yang sepadan ialah:

Callable[[int, int], int]

Ini menunjukkan bahawa fungsi menerima dua hujah integer dan mengembalikan integer.

Sintaks Umum

Secara umum, sintaks untuk fungsi jenis anotasi dalam Python ialah:

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]

Di mana:

  • ParamType1, ..., ParamTypeN ialah jenis argumen input
  • ReturnType ialah jenis daripada nilai pulangan

Dengan memanfaatkan penaipan.Boleh dipanggil, kami boleh menentukan jenis fungsi dengan berkesan dalam anotasi jenis Python, meningkatkan kebolehbacaan kod dan memastikan ketepatan jenis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Jenis Fungsi dalam Anotasi Python Menggunakan `typing.Callable`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn