Ntụle Ntụle Ụdị Eke Ọgba: Ntụnye igbe efu
Okwu
Mewayz Team
Editorial Team
Gịnị kpatara arịa ndị efu ji agbaji ụdị nyocha Python - yana ihe ị nwere ike ime gbasara ya
Sistemụ eji pịnye nke nta nke nta nke Python etoola nke ukwuu kemgbe PEP 484 webatara ụdị ihe ngosi na 2015. Taa, ọtụtụ nde ndị mmepe na-adabere na ụdị checkers static iji jide ahụhụ tupu ha ebute mmepụta. Mana enwere akụkụ dị aghụghọ, nke na-akụda mmụọ nke ụdị usoro nke ka na-agbago ọbụna ndị injinia nwere ahụmahụ: kedu ụdị akpa enweghị ihe nwere? Mgbe ị na-ede x = [] na-enweghị nkọwa, ụdị nlele gị ga-eche - na ndị nyocha dị iche iche na-eche n'ụzọ dị iche. Nke a divergence na-emepụta ezigbo nsogbu maka otu na-edobe nnukwu codebases, ebe ịgbanwee ma ọ bụ ijikọta ụdị checkers nwere ike ihu ọtụtụ narị njehie na-atụghị anya n'otu ntabi anya.Akụkọ a na-akụda ka isi anọ ụdị Python checkers — mypy, pyright, pytype, and pyre — jikwaa nkọwa akpa efu, ihe kpatara na ha ekwetaghị, yana usoro bara uru ị nwere ike ịnakwere iji dee Python ụdị-safe n'agbanyeghị nhọrọ ị ga-eji rụọ ọrụ.
Nsogbu bụ isi: Ngwongwo ndị na-adịghị efu bụ ihe mgbagwoju anya
Tụlee ahịrị Python a na-adịghị njọ: result = []. Ọ bụnsonaazụbụ ndepụta[int]? ndepụta[str]? A ndepụta[dict[str, Ọ bụla]]? Enweghị nkọwa ọzọ, ọ nweghị ụzọ ị ga-esi mara n'ezie. Oge ịgba ọsọ Python anaghị echebara ya echiche - ndepụta dị iche iche site na okike - mana ndị na-enyocha ụdị static ga-ekenye ụdị ihe dị iche iche maka mgbanwe ọ bụla iji rụọ ọrụ ha. Nke a na-ebute esemokwu dị mkpa n'etiti mgbanwe mgbanwe ike Python na nkwa nke nyocha static na-agbalị inye.
Nsogbu a nwere akwụkwọ ọkọwa okwu na nhazi. A na-atụgharị ihe efu {} dị ka dict, ọ bụghị nke set, nke na-agbakwunye mgbagwoju anya syntactic n'elu ụdị-ọkwa dị mgbagwoju anya. Na arịa ndị akwụghị ụgwọ — cheredefaultdict(ndepụta)ma ọ bụ result = {k: [] maka k na igodo} — kpalie inference engines na oke ha. Ụdị nlele nke ọ bụla ewepụtala usoro ihe ọmụmụ nke ya, na ndịiche dị iche iche dị ịrịba ama karịa ka ọtụtụ ndị mmepe ghọtara.
Na sistemu mmepụta na-ahazi ezigbo ibu ọrụ - ma ọ bụ CRM na-ejikwa ndekọ ndị ahịa, modul akwụkwọ ọnụahịa na-emepụta ihe ahịrị, ma ọ bụ ihe nchịkọta pipeline na-achịkọta metrik - akpa efu na-apụta mgbe niile dị ka usoro mmalite. Inweta ụdị ha na-ezighi ezi abụghị naanị na-ebute ịdọ aka ná ntị linter; ọ nwere ike kpuchie ezigbo ahụhụ na-adaba na oge ojiri gaa.Mypy: Ntinye aka ebugharị na ihe ọ bụla doro anya
Mypy, ụdị ihe nyocha Python kacha ochie na nke a nakweere n'ọtụtụ ebe, na-eji ụzọ dị nro dị nro na arịa efu. Mgbe ọ na-ezute x = [] na oke ọrụ, ọ na-anwa ịkwụsị ụdị mkpebima wepụta ụdị mmewere site na ojiji na-esote. Ọ bụrụ na ị dee x = [] sochiri x.append(42), mypy ga-echepụta ndepụta[int]. Atụmatụ 'jikọọ' a na-arụ ọrụ nke ọma nke ọma maka ikpe kwụ ọtọ ebe akpa ahụ juputara n'otu oke.
Otú ọ dị, omume mypy na-agbanwe n'ụzọ dị egwu dabere na ọnọdụ na ntọala siri ike. Na modul scope (koodu nke elu-larịị), ma ọ bụ mgbe akpafere akpa ahụ n'ọrụ ọzọ tupu ebibie ya, mypy na-adaghachi azụ na ndepụta [Ọ bụla]. N'okpuru ọkọlọtọ - siri ike, nke a na-ebute njehie, mana na ọnọdụ ndabara ọ na-agafe na nzuzo. Nke a pụtara na ndị otu na-agba ọsọ mypy na-enweghị ọnọdụ siri ike nwere ike ịkwakọba ọtụtụ arịa etinyere n'ezoghị ọnụ nke na-eme dị ka ụzọ mgbapụ site na ụdị usoro ahụ, na-emeri ebumnuche ya.
Otu akparamagwa dị aghụghọ nke ọma: ụdị mypy tupu 0.990 na-eche mgbe ụfọdụ ndesịta[Amaghị] n'ime wee gbasaa gaa na ndepụta[Ọ bụla] na ọrụ. Post-0.990, ntinye aka na-emesi ike, mana mgbanwe ahụ mebiri ọnụ ọgụgụ dị ịtụnanya nke koodu codebases nke na-adabere na omume na-enye ohere n'amaghị ya. Nke a bụ isiokwu na-emegharị ugboro ugboro - mgbanwe na ntinye aka na akpa ihe efu so na mmelite ụdị nlele kacha akpaghasị anya n'ihi na usoro ndị ahụ dị ebe niile.
Pyright: Ntinye aka siri ike na ụdị "Amaghị"
Pyright, nke Microsoft mepụtara na Pylance na-enye ike na koodu VS, na-ewere ọnọdụ nkà ihe ọmụma dị iche. Kama ịla n'ime jụụ laghachi na Ihe ọ bụla, pyright na-amata ọdịiche dị n'etiti Amabeghị(ụdị nke a na-ekpebibeghị) na Ọ bụla(ịpụpụ n'ụdị nlele). Mgbe ị na-ede x = [] n'ụdị siri ike nke pyright, ọ na-etinye ndesịta[Unknown] wee kọọ nyocha, na-amanye gị ịnye nkọwa.Pyright na-akpa ike karịa maka ibelata n'ime oke. Ọ bụrụ na ị dee:
- x = [] sochiri x.append("ndewo") — pyright na-ewepụta ndepụta[str]
- x = [] sochiri x.append(1) wee x.append("ndewo") — pyright infers ndepụta[int | str]
- x = [] gafere ozugbo na ọrụ na-atụ anya ndepụta[int] — pyright na-ewepụta ndepụta[int] site na ọnọdụ saịtị oku
- x = []laghachiri site na ọrụ na-enweghị nkọwaghachi ụdị nzaghachi — pyright na-akọ njehie kama ịkọ nkọ
Ntụ aka bidirectional a (iji ma ojiji na-esote yana ụdị a na-atụ anya site na saịtị oku) na-eme ka pyright dịkwuo oke karịa mypy maka arịa efu. The tradeoff bụ verbosity: pyright siri ike mode flags ihe dị ka30-40% ihe ndị ọzọna a ahụkarị unannotated codebase tụnyere mypy siri mode, dị ka nyocha si ọtụtụ oghe-isi iyi mbugharị akụkọ. Maka otu ndị na-ewu sistemu azụ azụ dị mgbagwoju anya - sịnụ, ikpo okwu na-ejikwa modul 207 jikọrọ ọnụ na-agbasa CRM, ndebanye aha, na nyocha - nkwụsi ike nke pyright na-ejide nhụsianya dị aghụghọ nke enweghị mmasị na-agaghị echefu.
Pytype na Pyre: Ụzọ njem ndị pere mpe
Ụdị pytype nke Google na-ewere ikekwe ụzọ kacha eme nke ọma. Kama ịchọ nkọwa ma ọ bụ daa azụ naỌ bụla, pytype na-eji ntụle mmemme niileiji soro otu esi eji akpa eme ihe gafee oke ọrụ. Ọ bụrụ na ị mepụta ndepụta efu n'otu ọrụ wee nyefee ya na nke ọzọ na-agbakwunye integers, pytype nwere ike ịpụtakarị list[int]na-enweghị nkọwa ọ bụla. Ntinye aka n'ofe ọrụ a na-akwụ ụgwọ ọnụ - pytype na-eji nwayọ nwayọ karịa mypy ma ọ bụ pyright na nnukwu codebases - mana ọ na-ewepụta ezigbo ụgha na koodu enweghị nkọwa.
Pytype na-ewebatakwa echiche nke “ụdị akụkụ” maka arịa efu. Ihe emepụtara ọhụrụ[] na-enweta ụdị akụkụ nke a na-eji nke nta nke nta nụchaa ka onye nyocha na-enwetakwu ojiji. Nke a bụ echiche mara mma mana ọ nwere ike iwepụta ozi njehie na-agbagwoju anya mgbe ụdị akụkụ ahụ enweghị ike idozi ya nke ọma, dị ka mgbe akpa efu na-agafe n'ọtụtụ ọrụ na-enweghị onye mmadụ.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →Meta's pyre, ka ọ dị ugbu a, na-abịaru nso na omume mypy mana ọ nwere ndabara siri ike karị. Pyre na-emeso x = [] dị ka ndepụta[amaghị]ma na-achọ nkọwa n'ọtụtụ ọnọdụ. Ebe pyre dị iche n'onwe ya nọ na njikwa ya nkeakwụkwọ ọkọwa okwu efu na-eji dị ka kwargs- ụkpụrụ a na-ahụkarị na nhazi weebụ. Pyre nwere mgbagha pụrụ iche iji wepụta ụdị akwụkwọ ọkọwa okwu site na ọnọdụ arụmụka isiokwu, na-ebelata ibu nkọwa n'ime ntọala koodu-dị arọ. Nyere na ọtụtụ ngwa weebụ ọgbara ọhụrụ gụnyere iji akwụkwọ ọkọwa okwu dị ukwuu maka nhazi na njikwa arịrịọ, pragmatism a na-akwụ ụgwọ ego.
Mmetụta n'Ezie-Ụwa: Mgbe Mbipụta Divergence ata
Ndịiche dị n'etiti ụdị checkers nwere ike iyi agụmakwụkwọ ruo mgbe ị nwetara ha na koodu mmepụta. Tụlee ụkpụrụ a na-ahụkarị na ngwa azụmahịa: ịmalite usoro data nke na-ejupụta na ọnọdụ.
Ihe kacha dị ize ndụ enweghị ihe ọ bụla abụghị ụdị ọkọlọtọ checkers - ha bụ ndị na-eji nwayọọ na-agafe na ụdị Ọ bụla, na-ekwe ka data na-ekwekọghị ekwekọ na-agbakọ n'enweghị ịdọ aka ná ntị ruo mgbe ọrụ mgbada na-ada n'oge na-agba ọsọ na TypeErrornke bụ ihe fọrọ nke nta ka ọ bụrụ na ọ gaghị ekwe omume ịchọta azụ na mmalite ya.
Ihe atụ doro anya: otu ndị nọ na mmalite fintech kọrọ na ha na-emefuụbọchị atọ na-emezigharị mbipụta mmepụtaebe ndepụta efu, nke etinyere na ọrụ nhazi ịkwụ ụgwọ, bụndepụta [Ọ bụla]site mypy. Ndepụta ahụ kwesịrị ịnwe iheDecimalmaka ego ego, mana ụzọ koodu na-agbakwunye ụkpụrụ ese n'elu kama. Mmetụta dị nro nke Mypy gbachiri nkịtị kwere ya. Ahụhụ ahụ pụtara naanị mgbe mkpụkọ njehie na mgbakọ na-ese n'elu mmiri butere nghọtahie $0.01 na batch nke akwụkwọ ọnụahịa 12,000. Ọ bụrụ na ha ejiri pyright na ọnọdụ siri ike, ma ọ bụ kọwapụta ndepụta efu dị ka ndesịta[Decimal], a gaara ejide ahụhụ ahụ n'oge mmepe.
Na Mewayz, ebe usoro ikpo okwu na-ahazi akwụkwọ ọnụahịa, ngụkọ ụgwọ ọrụ na nyocha ego n'ofe akaụntụ ndị ọrụ 138,000+, ụdị ọdịiche nchekwa a abụghị nke usoro - ọ bụ ihe dị iche n'etiti ụgwọ ịkwụ ụgwọ ziri ezi na ngụghachi ọnụ. Ederede siri ike n'akụkụ mmalite akpa bụ otu n'ime omume injinia "na-agwụ ike" nke na-egbochi mmepụta mmepụta ihe na-akpali akpali.Mmemme Kachasị Mma maka mbido akpa nchekwa
N'agbanyeghị ụdị nlele ndị otu gị na-eji, enwere usoro a ga-eji kpochapụ enweghị mgbagha kpamkpam. Ebumnobi a bụ ka ị ghara ịdabere na ntinye akwụkwọ maka arịa efu - mee ka ụdị ahụ pụta ìhè ka koodu gị wee nwee ike ibugharị n'ofe ndị na-enyocha ihe niile ma ghara inwe mgbanwe mgbanwe omume n'etiti nsụgharị.
- Na-akọwapụta mgbanwe akpa efu mgbe niile.Dee result: list[int] = []kama result = []. Ọnụ ego okwu ọnụ pere mpe bụ nke a na-agaghị efu ma e jiri ya tụnyere oge nbibi echekwara. Otu omume a na-ewepụ ihe dị ka 80% nke nsogbu ntinye akpa efu.
- Jiri ọrụ ụlọ ọrụ maka arịa dị mgbagwoju anya. Kama cache = {}, dee ọrụ dị ka def make_cache() -> dict[str, ndepụta[UserRecord]]: laghachi {}. Nkọwa ụdị nlọghachi na-eme ka ụdị e bu n'obi bụrụ ihe na-enweghị mgbagha na idebe onwe ya.
- Họrọ ndị na-emepụta ihe na-ede ede karịa akwụkwọ nkịtị maka ụdị ndị na-abụghị obere. Maka defaultdict na Counter, na-enye ụdị paramita mgbe niile: ọnụ: Counter[str] = Counter().
- Hazie ụdị nke onye nyocha gị maka koodu ọhụrụ. Ma mypy na pyright na-akwado kwa faịlụ ma ọ bụ nhazi ndekọ aha ọ bụla. Kwado ịlele nke ọma na modul ọhụrụ ka ị na-eji nwayọọ nwayọọ na-akwaga koodu ihe nketa. Nke a na-egbochi ịchịkọta akpa ọhụrụ etinyere n'ezoghị ọnụ.
- Tinye ntụnyere ụdị nlele na pipeline CI gị. Na-agba ọsọ ma mypy na pyright na codebase gị na-enweta ọdịiche dị n'oge. Ọ bụrụ na ụkpụrụ gafere otu onye nyocha mana ọ daa nke ọzọ, ọ bụ akara na ụdị ahụ akọwapụtaghị nke ọma.
Foto ka ukwuu: Ụdị ịlele dị ka omume otu
Ntụnye akpa ihe efu bụ n'ikpeazụ microcosm nke nnukwu ihe ịma aka na ụdị usoro Python: esemokwu dị n'etiti ịdị mma na nchekwa. Nkà ihe ọmụma Python nke "anyị niile na-anabata ndị okenye" na-arụ ọrụ nke ọma maka imepụta ihe na edemede, mana usoro mmepụta ihe na-ejere ọtụtụ puku ndị ọrụ chọrọ nkwa siri ike. Eziokwu ahụ bụ na ndị na-enyocha ụdị isi anọ ekwenyeghị n'ihe dị ka isi dị ka ụdị [] na-emesi ike na gburugburu ebe obibi nke Python ka na-eto eto.
Maka ndị otu injinia na-ewu usoro ikpo okwu dị mgbagwoju anya - ma ị na-ejikwa obere microservices ma ọ bụ sistemụ jikọtara ya na ọtụtụ narị modul ejikọtara dị ka Mewayz's Business OS - ndụmọdụ bara uru bụ nke kwụ ọtọ: adaberela na ntinye maka arịa efu, họrọ ụdị checker na hazie ya nke ọma, ma na-emeso ụdị nkọwa dị ka akwụkwọ nwere ike ịbụ igwe. Nkeji ise ejiri dee ndepụta[ akwụkwọ ọnụahịa ] kama ịdepụta [] ga-echekwa gị ọtụtụ awa nke nbipu mgbe koodu ntọala gị ruru.Dị ka PEP 696 (ụdị ndabara) na PEP 695 (ụdị parameter syntax) na-aga n'ihu na-adaba na nsụgharị Python ọhụrụ, ergonomics nke ederede doro anya ga-anọgide na-akawanye mma. Ọdịiche dị n'etiti "nkọwapụta" na "enweghị nkọwa" Python ga-ebelata. Mana ruo ụbọchị ahụ, ụdị akpa ndị doro anya na-anọgide na-abụ otu n'ime omume ROI kachasị elu na ngwa ngwa onye nrụpụta Python - obere ọzụzụ na-akwụ ụgwọ ọmụrụ nwa n'ofe modul ọ bụla, sprint ọ bụla, na ntinye mmepụta ọ bụla.Mepụta OS azụmahịa gị taa
Site na freelancers gaa na ụlọ ọrụ, Mewayz na-enye ikike azụmahịa 138,000+ nwere modul 207 jikọtara ọnụ. Malite n'efu, kwalite mgbe ị na-etolite.
Mepụta Akaụntụ efu →Ajụjụ a na-ajụkarị
Gịnị kpatara enweghị ike pịnye checkers kwekọrịta n'ụdị ndepụta efu?
Mgbe ị na-ede `x = []`, ụdị ihe nleba anya ga-ewepụtarịrị otu ụdị na-enweghị nkọwa doro anya. Ndị na-enyocha ihe dị iche iche na-eji atụmatụ dị iche iche: ụfọdụ na-eche 'ndepụta [Ihe ọ bụla]' (ndepụta nke ihe ọ bụla), ebe ndị ọzọ nwere ike ịkọwapụta kpọmkwem mana ụdị ezighi ezi dịka 'ndepụta[Ọ dịghị]". Enweghị ụkpụrụ zuru ụwa ọnụ bụ ihe mere ha ji ekwetaghị. Maka oru na-eji otutu checkers, nke a na-ekwekọghị ekwekọ nwere ike ịbụ isi ọwụwa isi ọwụwa, na-agbaji nyocha n'otu ngwá ọrụ na-agafe na ọzọ.
Kedu ụzọ kacha mfe isi dozie mperi akpa efu?
Ngwọta kacha kwụ ọtọ bụ ịnye nkọwapụta ụdị nkọwa. Kama 'my_list = []`, dee 'my_list: list[str] = []' iji kwupụta nke ọma ụdị echere. Nke a na-ewepụ enweghị mgbagwoju anya maka ụdị nlele ahụ, na-ahụ na omume na-agbanwe agbanwe gafee ngwaọrụ dị iche iche dị ka mypy, Pyright, na Pyre. A na-atụ aro omume a maka mbido akpa ihe efu niile iji gbochie njehie ntinye.
Kedụ ka m ga-esi ejikwa akpa ihe efu n'ime nkọwa klaasị?
Nke a bụ ihe a na-ahụkarị n'ihi na nkọwapụta n'ime klaasị chọrọ njikwa pụrụ iche. Ị ga-ejirịrị nkọwa mbubata 'si __future__' ma ọ bụ nkọwa 'ClassVar' ma ọ bụrụ na e bu n'obi na ndepụta ahụ bụrụ njirimara klaasị. Ọmụmaatụ, `klas MyClass: my_list: ClassVar[ndepụta[str]] = []`. Na-enweghị nke a, ụdị onye na-enyocha ihe nwere ike ịgbalịsi ike ịchọta ụdị ahụ nke ọma, na-eduga na njehie.
Enwere ngwá ọrụ iji nyere aka jikwaa mbipụta ndị a na nnukwu ọrụ?
Ee, ụdị nlele dị elu dị ka Pyright (nke na-enye Pylance na koodu VS) dị mma karịsịa n'ijikwa nrụtụ aka dị mgbagwoju anya. Maka nnukwu codebases, nyiwe dị ka Mewayz (na-enye 207 modul nyocha maka $ 19 / ọnwa) nwere ike inye ụdị nlele miri emi, na-agbanwe agbanwe ma nyere aka mee ka omume nkọwa n'ofe otu gị dum, na-ebelata esemokwu ndị a tụlere n'isiokwu ahụ.Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 30,000+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Mothers Defense (YC X26) Is Hiring in Austin
Mar 14, 2026
Hacker News
The Browser Becomes Your WordPress
Mar 14, 2026
Hacker News
XML Is a Cheap DSL
Mar 14, 2026
Hacker News
Please Do Not A/B Test My Workflow
Mar 14, 2026
Hacker News
How Lego builds a new Lego set
Mar 14, 2026
Hacker News
Megadev: A Development Kit for the Sega Mega Drive and Mega CD Hardware
Mar 14, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime