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
: integerstr
: stringfloat
: nombor apunganbool
: booleanList
: senaraiDict
: kamusTuple
: tupleSet
: 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.