1. ProgrammeringPythonHva er en Python-modul?

Av Alan Shovic, John Shovic

For alle hooplaene om Python-moduler er faktisk en modul en ganske enkel ting. Faktisk er en Python-modul bare en fil med en .py-utvidelse som inneholder Python-kode. Det er det. Så når du skriver Python-kode og lagrer den i en .py-fil, har du i utgangspunktet opprettet en modul.

Det er ikke å si at du alltid må bruke den koden som en modul. Den kan absolutt behandles som en frittstående app. Men hvis du ønsket å lage din egen Python-modul, med bare kode du ofte trenger i ditt eget arbeid, kan du absolutt gjøre det.

programmering av Python-moduler

En Python-modul er også bare en fil med filtypenavnet .py. Navnet på modulen er det samme som filnavnet (uten .py). Som enhver .py-fil inneholder modulen Python-kode. Som et fungerende eksempel, la oss anta at du vil ha tre funksjoner for å forenkle formateringsdatoer og valutaverdier. Du kan lage et hvilket som helst navn du vil for hver funksjon. For vårt arbeidseksempel bruker vi disse tre navnene:

  • to_date (hvilken som helst_str): Lar deg passere hvilken som helst streng (hvilken som helst_str) -dato i mm / dd / åååå eller mm / dd / åååå-format og sender tilbake en Python-datetime.date som du kan bruke til datoberegninger. mdy (any_date): Lar deg passere hvilken som helst Python-dato eller datetime, og returnerer en strengdato formatert i mm / dd / åååå-format for visning på skjermen. to_curr (any_num, len): Lar deg passere et hvilket som helst Python-flyte- eller heltallsnummer og returnerer en streng med et ledende dollartegn, kommaer i tusenvis av steder og to sifre for øre. Len er et valgfritt nummer for lengde. Hvis angitt, vil returverdien bli polstret til venstre med mellomrom for å samsvare med den angitte lengden

Så her er all koden for det:

# Inneholder tilpassede funksjoner for datoer og valutaverdier.
import datetime som dt
def to_date (any_str):
"" "Konverter mm / dd / åååå eller mm / dd / åååå streng til datetime.date, eller Ingen hvis ugyldig dato." ""
prøve:
hvis len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). dato ()
ellers:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). dato ()
unntatt (ValueError, TypeError):
the_date = Ingen
returner datoen
def mdy (hvilken som helst dato):
"" "Returnerer en strengdato i mm / dd / åååå-format. Pass i Python-dato eller strengdato i mm / dd / åååå-format" ""
if type (any_date) == str:
any_date = to_date (hvilken som helst dato)
# Forsikre deg om at det er en dato som blir videresendt
if isinstance (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
ellers:
s_date = "Ugyldig dato"
returner s_date
def to_curr (anynum, len = 0):
"" "Returnerer et nummer som en streng med $ og komma. Lengde er valgfritt" ""
s = "Ugyldig beløp"
prøve:
x = flyte (anynum)
unntatt ValueError:
x = Ingen
hvis isinstance (x, flyte):
s = '$' + f "{x:,. 2f}"
hvis len> 0:
s = s.rjust (len)
retur s

Du kan opprette den samme filen selv og gi den navnet myfunctions.py hvis du vil følge med. Legg merke til at filen bare inneholder funksjoner. Så hvis du kjører den, vil den ikke gjøre noe på skjermen fordi det ikke er noen kode der som kaller noen av disse funksjonene.

For å bruke disse funksjonene i hvilken som helst Python-app eller program du skriver, må du først sørge for at du kopierer den myfunc.py-filen til samme mappe som resten av Python-koden som du skriver. Når du oppretter en ny side, kan du importere myfunc som en modul akkurat som du ville gjort for andre moduler opprettet av noen andre. Bare bruk

importer myfunc

Du må bruke modulenavnet foran noen av funksjonene du kaller fra den modulen. Så hvis du vil gjøre koden litt mer lesbar, kan du bruke denne i stedet:

importer myfunc som min

Med det som åpningslinje, kan du henvise til hvilken som helst funksjon i din tilpassede Python-modul med min. som prefiks. For eksempel my.to_date () for å ringe to_date-funksjonen. Her er en side som importerer modulen og deretter tester ut alle tre funksjonene ved å bruke den syntaks:

# Importer all koden fra myfunc.py som min.
importer myfunc som min
# Trenger datoer i denne koden
fra datetime import datetime som dt
# Noen enkle testdata.
string_date = "12/31/2019"
# Konverter strengdato til datetime.date
print (my.to_date (string_date))
i dag = dt.dag ()
# Vis dagens dato i mm / dd / åååå-format.
print (my.mdy (i dag))
dollar_amt = 12345.678
# Vis dette store tallet i valutaformat.
print (my.to_curr (dollar_amt))

Du kan også hoppe over prefikset hvis du importerer elementer med navn. I dette tilfellet betyr det at du kan ringe to_date () og mdy () og to_curr () uten å bruke min. prefiks. Den første kodelinjen må være

fra myfunc import til_date, mdy, to_curr

Resten av koden vil være den samme som i forrige eksempel, bortsett fra at du kan la fra meg. prefikser som i følgende kode:

# Importer all koden fra myfunc.py med navn.
fra myfunc import til_date, mdy, to_curr
# Trenger datoer i denne koden
fra datetime import datetime som dt
# Noen enkle testdata.
string_date = "12/31/2019"
# Konverter strengdato til datetime.date
print (TO_DATE (string_date))
i dag = dt.dag ()
# Vis dagens dato i mm / dd / åååå-format.
print (MDÅ (i dag))
dollar_amt = 12345.678
# Vis dette store tallet i valutaformat.
print (to_curr (dollar_amt))

Sjekk ut disse 10 fantastiske Python-programmeringsressursene for mer informasjon.