Petunjuk jenis dalam Python digunakan untuk menunjukkan jenis yang dijangkakan pembolehubah, parameter fungsi, dan nilai pulangan. Mereka adalah ciri yang diperkenalkan di Python 3.5 sebagai sebahagian daripada PEP 484. Berikut adalah cara anda boleh menggunakan petunjuk jenis:
Fungsi Anotasi :
Untuk menambah jenis petunjuk untuk berfungsi parameter dan pulangan nilai, anda menggunakan kolon :
diikuti dengan jenis. Contohnya:
<code class="python">def greet(name: str) -> str: return f"Hello, {name}!"</code>
Dalam contoh ini, name
dijangka menjadi str
, dan fungsi itu dijangka mengembalikan str
.
Anotasi berubah :
Anda juga boleh menambah jenis petunjuk kepada pembolehubah:
<code class="python">age: int = 30</code>
Di sini, age
dijelaskan sebagai int
.
Koleksi :
Untuk koleksi seperti senarai, tuple, dan kamus, anda menggunakan modul typing
yang diperkenalkan di Python 3.5:
<code class="python">from typing import List, Tuple, Dict numbers: List[int] = [1, 2, 3] coordinates: Tuple[int, int] = (10, 20) person: Dict[str, str] = {"name": "Alice", "city": "Wonderland"}</code>
Kesatuan dan pilihan :
Anda boleh menyatakan bahawa pembolehubah atau parameter boleh menjadi salah satu daripada beberapa jenis menggunakan Union
atau menunjukkan bahawa ia None
boleh menggunakan Optional
:
<code class="python">from typing import Union, Optional def process(value: Union[int, str]) -> int: if isinstance(value, str): return int(value) return value def say_hello(name: Optional[str] = None) -> str: return f"Hello, {name or 'World'}!"</code>
Jenis generik :
Petunjuk jenis juga boleh digunakan dengan generik untuk menentukan jenis elemen dalam koleksi:
<code class="python">from typing import List, TypeVar T = TypeVar('T') def first(items: List[T]) -> T: return items[0]</code>
Dengan menggunakan petunjuk jenis, pemaju boleh membuat kod mereka lebih mudah difahami dan mendokumentasikan diri, yang boleh membantu alat pemeriksaan jenis statik.
Petunjuk jenis di Python menawarkan beberapa faedah:
mypy
membenarkan pemeriksaan jenis statik, yang boleh menangkap kesilapan yang berkaitan dengan jenis sebelum runtime. Ini amat berguna dalam codebase besar di mana jenis pemeriksaan secara manual boleh menjadi rawan ralat dan memakan masa.Jenis petunjuk meningkatkan kebolehbacaan kod dan penyelenggaraan dengan cara berikut:
def add(a: int, b: int) -> int:
, mereka segera mengetahui bahawa fungsi itu mengambil dua bilangan bulat dan mengembalikan integer. Kejelasan ini mengurangkan beban kognitif yang diperlukan untuk memahami kod tersebut.Berikut adalah beberapa contoh yang menunjukkan penggunaan petunjuk jenis dalam fungsi dan pembolehubah Python:
Berfungsi dengan petunjuk jenis :
<code class="python">from typing import List, Tuple def calculate_average(numbers: List[float]) -> float: if not numbers: return 0.0 return sum(numbers) / len(numbers) def format_coordinates(x: float, y: float) -> str: return f"({x:.2f}, {y:.2f})" def process_data(data: Tuple[int, str, float]) -> str: id, name, value = data return f"ID: {id}, Name: {name}, Value: {value:.2f}"</code>
Pembolehubah dengan petunjuk jenis :
<code class="python">from typing import List, Dict, Optional scores: List[int] = [85, 90, 78] student_grades: Dict[str, float] = {"Alice": 3.5, "Bob": 3.8} favorite_color: Optional[str] = None</code>
Menggabungkan petunjuk jenis dengan nilai lalai :
<code class="python">from typing import List def greet(name: str = "World") -> str: return f"Hello, {name}!" def sum_numbers(numbers: List[int] = []) -> int: return sum(numbers)</code>
Menggunakan jenis kesatuan dan generik :
<code class="python">from typing import Union, List, TypeVar T = TypeVar('T') def first_element(items: List[T]) -> T: return items[0] def process_value(value: Union[int, float, str]) -> str: return str(value)</code>
Contoh -contoh ini menunjukkan bagaimana petunjuk jenis boleh digunakan untuk unsur -unsur kod python yang berlainan, meningkatkan kebolehbacaan dan kebolehkerjaan.
Atas ialah kandungan terperinci Bagaimana anda menggunakan petunjuk jenis dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!