Kezdőoldal » Számítástechnika » Programozás » Python-ban minek hivjak ezt...

Python-ban minek hivjak ezt az ujfajta szintaxist?

Figyelt kérdés

Pl.:


class Hello():

name: str


def hello(n: int) -> int:


2022. okt. 7. 14:33
1 2
 1/13 anonim ***** válasza:
65%
type hinting
2022. okt. 7. 14:37
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:
Es mire jo ez tulajdonkeppen? Hasznalja valaki?
2022. okt. 7. 14:41
 3/13 A kérdező kommentje:
Mert en csak azt latom hogy amit eddig le lehetett kodolni 30 karakterbol az most 90 karakter es atlathatatlanabb tole a kod.
2022. okt. 7. 14:41
 4/13 A kérdező kommentje:
Vissza lehet alakitani normal python kodda automatikusan egy type hint-el kodolt forrast?
2022. okt. 7. 14:43
 5/13 anonim ***** válasza:
89%

"Hasznalja valaki?"


Minden ember, aki értelmes kódot szeretne írni...



"atlathatatlanabb tole a kod."


Na ne...

2022. okt. 7. 14:49
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:
85%

A Python erősen, de dinamikusan típusos nyelv, ami azt jelenti, hogy az értékeknek van típusuk (pl. string vagy integer), de azt nem kell megadni, az értelmező kitalálja illetve ellenőrzi.


Ez kis programocskáknál nem gond, azonban ahogyan nő a kódbázis, egyre nagyobb probléma, mert nem lehet tudni, hogy pl. a


kivesz_a_raktarbol(tetel, darab)


függvény pontosan mit is vesz ki a raktárból (azt könnyebb megmondani, hogy a darab az valószínűleg integer típusú).


Ennek elkerülése véget bevezették az opcionális típusmegjelölést (angolul type hint, magyarul...?). A legújabb kiadásokban ez már alapból benne van (azt hiszem 3.10, 3.11), a régebbiekben importálnod kell hozzá a typing modult. [link]


Ez a videó értelmesen elmagyarázza: https://www.youtube.com/watch?v=QORvB-_mbZ0


Nyugodtan programozhatsz e nélkül is Pythonban, a fordító nem kéri számon. A mypy nevű modullal szokás ellenőrizni, hogy nem sértik-e a hivatkozásaid a típusosságot (de ez opcionális).


Azonban a Python is fejlődik, és nagyon érdemes rápillantanod a pydantic csomagra, amely eredetileg egy futásidejű adatvalidációs könyvtár, de ezzel szokás újabban az adatkonverziókat ellenőrizni: [link]


Szóval amíg csak kis programocskákat írsz, addig hagyd figyelmen kívül, teljesen mindegy. De ahogyan fentebb is írják, érdemes rászokni a típusmegjelölések használatára, ez alapvető jó szokás a dinamikus nyelvek esetében is.

2022. okt. 7. 15:03
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:
6# koszonom. meg tudnal par szot mindani a linter-rol is?
2022. okt. 7. 18:51
 8/13 anonim ***** válasza:
85%
A linter általánosságban figyeli a kódolási stílusodat, ha nem megfelelő a formázás aláhúzza és felajánlja, hogy kijavítja (sok esetben mentésre már be is formázza, ha úgy van beállítva az IDE), ilyen "hibák" lehetnek pl behúzások, vesszők, pontosvesszők space-ek. Érdemes szép kódot írni, a linter ebben segít. Ez általánosságban igaz, Pythonnál is nagyjából ez lehet a lényege.
2022. okt. 7. 20:43
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:
78%
De ide tartozik még több minden is, például ha régi elavult módszereket használsz, javasol modernebb módszereket. Vagy jelzi a deprecated hibákat is.
2022. okt. 7. 20:44
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:
78%

Annyira azért nem új, emlékeim szerint python 3.5 körül jött ki.

A célja az, hogy ha nem ismered a kódot, vagy újra akarsz használni funkciókat máshol akkor tudjad hogy az az adott függvény mit ad neked vissza vagy épp mit kér, anélkül hogy elkezdenéd elemezni a kódot.


Pl egy funkció adatbázislekérdezést csinál, mondjuk get_weather_data() néven. Ha egy másik modulban kell neked ez a függvény akkor honnan tudod, hogy milyen adatot ad vissza? Lehet dictionary, de lehet egy Class objektum vagy éppen egy Pandas dataframe, de akár egy egyszerű string is.


Ugyanez igaz a bemenetekre is, mondjuk a get_weather_data() funkciónál meg kell adnod hogy mikorra kéred mondjuk egy date változóval. Megint csak lehet ez datetime.date(2022,10,7) egy string(2022-10-7) vagy akár egy integer(20221007)


Sőt az alap typhinteknél bonyolultabbak is jelen vannak nagyobb projektekben, mert ahogy nő a projekt úgy egyre nehezebb egy kívülállónak rálátnia, hogy mi is történik pontosan.


Egyértelműen ha akarsz egy pici pythonprogramot akkor nem fogsz typehintekkel bajlódni, de ha egy rendszert építesz akkor mindenképpen szükséges.

A typhintek kivehetőek vagy áthághatóak, ezek csak nekünk programozóknak és a programunkat felhasználó embereknek fontos.

2022. okt. 7. 23:33
Hasznos számodra ez a válasz?
1 2

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!