Mga Uri sa Python
Ipinaliliwanag ng artikulong ito ang mga uri sa Python.
YouTube Video
Mga Uri sa Python
Ang typing
na module sa Python ay ginagamit upang ipasok ang mga type hint sa Python. Una itong ipinakilala sa Python 3.5 at ginagamit upang mapahusay ang pagkanalilito at pagkapanatilihin ng code. Ang mga type hint ay hindi nakakaapekto sa runtime ng code ngunit nagbibigay-daan para sa pagsuri ng uri gamit ang mga IDE at tool sa static analysis.
Mga Batayan ng Type Hints
Ang mga type hint ay nagpapalinaw sa layunin ng code sa pamamagitan ng tahasang pagtiyak sa mga uri ng mga function at variable. Sa halimbawa sa ibaba, ang mga uri ay ipinapahayag para sa mga argumento at resulta.
1def add_numbers(a: int, b: int) -> int:
2 return a + b
3
4result: int = add_numbers(5, 10)
5print(result) # 15
Sa code sa itaas, ang a
at b
ay may uri ng integer (int
), at ang resulta ng function ay tahasang tinukoy din bilang isang integer. Kahit na may type hints, hindi mahigpit na ipapatupad ang mga uri, ngunit maaaring magpakita ng mga babala sa panahon ng pag-develop kung may mga hindi pagtutugma ng uri.
Pangunahing Type Hints
Nagbibigay ang typing
na module sa Python ng iba't ibang klase at function upang tukuyin ang mga type hint. Nasa ibaba ang isang listahan ng mga karaniwang type hint.
int
: integerstr
: stringfloat
: floating-point numberbool
: booleanList
: listahanDict
: diksyonaryoTuple
: tupleSet
: set
Uri ng List
Ang uri ng listahan ay tinutukoy gamit ang klase na List
. Maaari mo ring tahasang tukuyin ang uri ng mga elemento sa loob ng isang listahan.
1from typing import List
2
3def sum_list(numbers: List[int]) -> int:
4 return sum(numbers)
5
6print(sum_list([1, 2, 3])) # 6
Sa halimbawa na ito, inaasahang ang lahat ng elemento ng listahan ay may uri na int
.
Uri ng Dict
Ang uri ng diksyunaryo ay tinutukoy gamit ang Dict
. Maaaring tukuyin ang uri ng mga susi at mga halaga.
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
Sa halimbawa na ito, ang diksyunaryo ay gumagamit ng str
bilang uri ng susi at int
bilang uri ng halaga.
Uri ng Tuple
Ang mga tuple ay tinutukoy gamit ang uri ng Tuple
. Maaari mong tukuyin ang uri ng bawat elemento sa tuple nang isa-isa.
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
Dito, ang function na get_person
ay nagpapakita na nagbabalik ng isang tuple na naglalaman ng isang string at isang integer.
Uri ng Union
Ang uri ng Union
ay ginagamit upang tahasang ipakita na tinatanggap ang maraming uri.
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
Sa halimbawa na ito, ang function na process_value
ay tumatanggap ng alinman sa int
o float
bilang argumento at nagbabalik ng resulta na may uri na float
.
Uri ng Optional
Ang uri ng Optional
ay ginagamit kapag ang isang variable ay maaaring None
. Ito ay ibinibigay bilang pinaikling paraan para sa 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!
Dito, ipinapakita na kapag ang name
ay hindi tinukoy, ito ay ituturing bilang None
.
Mga Pangkalahatang Uri
Ang mga pangkalahatang uri ay isang paraan upang abstrakto na kumatawan sa kung anong uri ng elemento ang nilalaman ng isang istruktura ng datos. Sa module na typing
, maaari kang magtukoy ng mga pangkalahatang uri gamit ang 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
Sa halimbawa na ito, ang get_first_element
ay isang function na nagbabalik ng unang elemento ng isang listahan, at gumagana ito anuman ang uri ng listahan.
Mga Alias ng Uri
Ang alias ng uri ay isang paraan upang gawing simple ang mga kumplikadong kahulugan ng uri sa pamamagitan ng pagbibigay ng malinaw na pangalan.
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)]
Sa halimbawa na ito, ang isang alias ng uri na Coordinates
ay tinukoy upang kumatawan lamang sa isang uri na may mga tuple sa loob ng isang listahan.
Buod
Ang typing
na module sa Python ay lubhang kapaki-pakinabang para mapabuti ang kalinawan at kakayahang mapanatili ang code. Sa pamamagitan ng wastong paggamit ng type hints, matutulungan mong maiwasan ang mga uri ng pagkakamali at mga bug, lalo na sa malakihang proyekto o team development. Ang mga uri ay isang kasangkapan lamang para sa suporta ng pag-develop at hindi nakakaapekto sa takbo ng programa, kaya nananatili ang kakayahang umangkop ng code.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.