Ratkaistu: vahva tyyppi

Viimeisin päivitys: 09/11/2023

Johdatus Pythonin vahvaan kirjoittamiseen

Ohjelmoinnin maailmassa mm. vahva kirjoitus viittaa siihen, kuinka tarkasti ohjelmointikieli valvoo muuttujien, funktioiden ja menetelmien arvojen osoittamista koskevia sääntöjä. Vahvasti kirjoitetussa kielessä muuttujien tietotyypit on määriteltävä eksplisiittisesti, ja kieli sallii rajalliset, jos ollenkaan, implisiittiset muunnokset eri tietotyyppien välillä. Python on dynaamisesti kirjoitettu kieli, mikä tarkoittaa, että muuttujille määritetään tyyppi ajon aikana. Pythonia pidetään kuitenkin myös vahvasti kirjoitettuna kielenä, koska se pakottaa tiukasti tyyppitarkistuksen suorituksen aikana. Tässä artikkelissa käsitellään vahvan kirjoittamisen merkitystä Pythonissa ja vahvan kirjoittamisen toteuttamista eri tekniikoilla, kirjastoilla ja funktioilla. Käymme läpi joitain koodiesimerkkejä korostaaksemme ideoita ja ratkaisuja, minkä jälkeen annamme yksityiskohtaiset selitykset.

Tyyppien merkitseminen Pythonissa tyyppivihjeillä

Python esiteltiin tyyppi vihjeitä PEP 484:n kanssa, jonka avulla kehittäjät voivat merkitä funktioita ja menetelmiä odotetuilla tietotyypeillä syöttöparametreille ja palautusarvoille. Tämä parannus on helpottanut kehittäjien koodin kirjoittamista ja ymmärtämistä, parantanut koodin luettavuutta ja avustanut työkaluja koodin oikeellisuuden tarkistamisessa kehityksen aikana.

Havainnollistaaksemme tyyppivihjeiden käyttöä kirjoitamme funktion, joka laskee suorakulmion alueen:

from typing import Tuple

def calculate_area(dimensions: Tuple[int, int]) -> int:
    width, height = dimensions
    return width * height

my_dimensions = (10, 20)
area = calculate_area(my_dimensions)
print(area)

Yllä olevassa esimerkissä funktio calculate_area hyväksyy syötteeksi kahden kokonaisluvun joukon (dimensions: Tuple[int, int])) ja palauttaa kokonaisluvun arvon (-> int). Tyyppivihjeet antavat selkeän käsityksen odotetusta syötteestä ja lähdöstä, mikä helpottaa muiden kehittäjien ymmärtämistä ja käyttöä.

Vahvan kirjoittamisen pakottaminen kirjoitussuojalla

Vaikka tyyppivihjeet parantavat koodin luettavuutta, ne eivät pakota voimakasta kirjoittamista suorituksen aikana. Tätä tarkoitusta varten voimme käyttää kirjastoa nimeltä kirjoitussuoja, joka tarjoaa sisustajan, joka pakottaa tyyppitarkistuksen suorituksen aikana tyyppivihjeiden perusteella. Muokkaamme edellistä esimerkkiä kirjasinsuojan osoittamiseksi:

from typing import Tuple
from typeguard import typechecked

@typechecked
def calculate_area(dimensions: Tuple[int, int]) -> int:
    width, height = dimensions
    return width * height

my_dimensions = (10, 20)
area = calculate_area(my_dimensions)
print(area)

my_wrong_dimensions = (10, "20")
area = calculate_area(my_wrong_dimensions)  # This will raise a TypeError

Koristelemalla toiminto @typechecked, The kirjoitussuoja kirjasto tarkistaa funktion tulon ja lähdön annettujen tyyppivihjeiden perusteella. Jos havaitaan epäsuhta, a TypeError on nostettu. Tämä auttaa havaitsemaan mahdollisia vikoja kehityksen aikana.

Tyyppitarkistuksen käyttäminen Pyrightin kanssa

Toinen tapa pakottaa voimakas kirjoittaminen on käyttää staattista tyyppitarkistusta, kuten Pyright. Pyright on Pythonin nopea tyyppitarkistus, joka keskittyy suorituskykyyn ja näyttää rikkomukset kehityksen aikana vaikuttamatta suoritusaikaan. Toisin kuin aiemmat ratkaisut, se on kuitenkin integroitava kehitysympäristöösi, kuten editori-laajennukseen.

Yhteenvetona voidaan todeta, että vahvalla kirjoittamisella on ratkaiseva rooli koodin luotettavuuden, ylläpidettävyyden ja luettavuuden parantamisessa. Python tukee vahvaa kirjoittamista tyyppivihjeiden ja kirjastojen, kuten typeguardin ja Pyrightin, avulla, jotka auttavat kehittäjiä suorittamaan tyyppitarkistuksia ja havaitsemaan mahdolliset virheet kehitysprosessin varhaisessa vaiheessa. Näiden työkalujen ja tekniikoiden avulla kehittäjät voivat kirjoittaa tehokkaampia ja virheettömiä Python-sovelluksia.

Related viestiä: