Jenis dalam Python

Jenis dalam Python

Artikel ini menerangkan jenis dalam Python.

YouTube Video

Jenis dalam Python

Modul typing dalam Python digunakan untuk memperkenalkan petunjuk jenis ke dalam Python. Ia pada asalnya diperkenalkan dalam Python 3.5 dan digunakan untuk meningkatkan kebolehbacaan dan pemeliharaan kod. Petunjuk jenis tidak memberi kesan pada waktu larian kod tetapi membolehkan semakan jenis dengan IDE dan alat analisis statik.

Asas Petunjuk Jenis

Petunjuk jenis menjelaskan maksud kod dengan menyatakan jenis fungsi dan pemboleh ubah secara eksplisit. Dalam contoh di bawah, jenis dinyatakan untuk argumen dan nilai pulangan.

1def add_numbers(a: int, b: int) -> int:
2    return a + b
3
4result: int = add_numbers(5, 10)
5print(result)  # 15

Dalam kod di atas, a dan b adalah jenis integer (int), dan nilai kembalian fungsi juga dinyatakan secara eksplisit sebagai integer. Walaupun dengan petunjuk jenis, jenis tidak dikuatkuasakan secara ketat, tetapi amaran mungkin dipaparkan semasa pembangunan jika terdapat ketidakpadanan jenis.

Petunjuk Jenis Utama

Modul typing dalam Python menyediakan pelbagai kelas dan fungsi untuk mentakrifkan petunjuk jenis. Di bawah ialah senarai petunjuk jenis yang biasa.

  • int: integer
  • str: string
  • float: nombor apungan
  • bool: boolean
  • List: senarai
  • Dict: kamus
  • Tuple: tuple
  • Set: set

Jenis List

Jenis senarai ditentukan menggunakan kelas List. Anda juga boleh secara eksplisit menentukan jenis elemen dalam senarai.

1from typing import List
2
3def sum_list(numbers: List[int]) -> int:
4    return sum(numbers)
5
6print(sum_list([1, 2, 3]))  # 6

Dalam contoh ini, semua elemen dalam senarai diharapkan berjenis int.

Jenis Dict

Jenis kamus didefinisikan menggunakan Dict. Jenis kunci dan nilai boleh ditentukan.

1from typing import Dict
2
3def get_student_age(students: Dict[str, int], name: str) -> int:
4    return students.get(name, 0)
5
6students = {"Alice": 23, "Bob": 19}
7print(get_student_age(students, "Alice"))  # 23

Dalam contoh ini, kamus menggunakan str sebagai jenis kunci dan int sebagai jenis nilai.

Jenis Tuple

Tuple ditentukan menggunakan jenis Tuple. Anda boleh menentukan jenis setiap elemen dalam tuple secara individu.

1from typing import Tuple
2
3def get_person() -> Tuple[str, int]:
4    return "Alice", 30
5
6name, age = get_person()
7print(name, age)  # Alice 30

Di sini, fungsi get_person ditunjukkan mengembalikan tuple yang mengandungi string dan integer.

Jenis Union

Jenis Union digunakan untuk secara eksplisit menunjukkan bahawa pelbagai jenis diterima.

1from typing import Union
2
3def process_value(value: Union[int, float]) -> float:
4    return value * 2.0
5
6print(process_value(10))  # 20.0
7print(process_value(3.5))  # 7.0

Dalam contoh ini, fungsi process_value menerima int atau float sebagai argumen dan mengembalikan hasil dengan jenis float.

Jenis Optional

Jenis Optional digunakan apabila suatu pembolehubah mungkin bernilai None. Ia disediakan sebagai singkatan untuk Union[Type, None].

1from typing import Optional
2
3def greet(name: Optional[str] = None) -> str:
4    if name is None:
5        return "Hello, Guest!"
6    return f"Hello, {name}!"
7
8print(greet())  # Hello, Guest!
9print(greet("Alice"))  # Hello, Alice!

Di sini, ia menunjukkan bahawa apabila name tidak ditentukan, ia dianggap sebagai None.

Jenis Generic

Jenis generic adalah cara abstrak untuk mewakili jenis elemen yang terkandung dalam struktur data. Dalam modul typing, anda boleh mendefinisikan jenis generic menggunakan TypeVar.

1from typing import TypeVar, List
2
3T = TypeVar('T')
4
5def get_first_element(elements: List[T]) -> T:
6    return elements[0]
7
8print(get_first_element([1, 2, 3]))  # 1
9print(get_first_element(["a", "b", "c"]))  # a

Dalam contoh ini, get_first_element adalah fungsi yang mengembalikan elemen pertama dalam senarai, dan ia berfungsi tanpa mengira jenis senarai tersebut.

Alias Jenis

Alias jenis adalah cara untuk mempermudah definisi jenis yang kompleks dengan memberikan nama yang jelas.

1from typing import List, Tuple
2
3Coordinates = List[Tuple[int, int]]
4
5def get_coordinates() -> Coordinates:
6    return [(0, 0), (1, 1), (2, 2)]
7
8print(get_coordinates())  # [(0, 0), (1, 1), (2, 2)]

Dalam contoh ini, alias jenis Coordinates didefinisikan untuk merepresentasikan jenis dengan tuple di dalam senarai.

Ringkasan

typing modul dalam Python sangat berguna untuk meningkatkan kebolehbacaan dan kebolehpeliharaan kod. Dengan menggunakan petunjuk jenis (type hints) dengan betul, anda boleh membantu mencegah ketidakpadanan jenis dan pepijat, terutamanya dalam projek berskala besar atau pembangunan pasukan. Jenis (types) hanyalah alat sokongan pembangunan dan tidak mempengaruhi tingkah laku semasa runtime, dengan itu mengekalkan fleksibiliti kod.

Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.

YouTube Video