1. ProgrammingPythonMis on Pythoni moodul?

Autorid Alan Shovic, John Shovic

Kõigi Pythoni moodulite kohta käiva hoopla jaoks on moodul tegelikult üsna lihtne asi. Tegelikult on Pythoni moodul lihtsalt .py-laiendiga fail, mis sisaldab Pythoni koodi. See selleks. Nii et iga kord, kui kirjutate Pythoni koodi ja salvestate selle .py-faili, olete põhimõtteliselt mooduli loonud.

See ei tähenda, et peate seda koodi alati moodulina kasutama. Kindlasti saab seda käsitleda iseseisva rakendusena. Kuid kui soovite luua oma Pythoni mooduli, millel on vaid kood, mida te sageli oma töös vajate, saate seda kindlasti teha.

programmeerimine Pythoni moodulid

Pythoni moodul on ka lihtsalt .py-faililaiendiga fail. Mooduli nimi on sama kui failinimi (ilma .py-ga). Nagu iga .py-fail, sisaldab moodul Pythoni koodi. Toimiv näide: oletagem, et soovite kuupäevade ja valuuta väärtuste vormindamise lihtsustamiseks kolme funktsiooni. Saate iga funktsiooni jaoks kirjutada mis tahes nime, mis teile meeldib. Oma töönäitena kasutame neid kolme nime:

  • to_date (any_str): võimaldab teil sisestada mis tahes stringi (any_str) kuupäeva vormingus kk / pp / aa või kk / pp / aaaa ja saadab tagasi Pythoni datetime.date, mida saate kasutada kuupäeva arvutamisel. mdy (any_date): võimaldab teil läbida ükskõik millise Pythoni kuupäeva või kellaaja ning tagastab ekraanil kuvamiseks stringi kuupäeva, mis on vormindatud mm / pp / aaaa vormingus. to_curr (any_num, len): laseb teil läbida ükskõik millise Pythoni ujuki või täisarvu ja tagastab stringi, millel on juhtiv dollarimärk, koma tuhandetes kohtades ja kaks numbrit penni eest. Len on pikkuse korral valikuline number. Kui see on ette nähtud, siis tagastatakse tagasiväärtus vasakul koos tühikutega, et need vastaksid täpsustatud pikkusele

Nii et siin on kõik selle kood:

# Sisaldab kohandatud funktsioone kuupäevade ja valuuta väärtuste jaoks.
impordi kuupäev kui dt
def to_date (any_str):
"Konverteeri stringi kk / pp / aa või kk / pp / aaaa kuupäevaks date.date või kui see on kehtetu kuupäev, pole" ".
proovige:
kui len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). date ()
muu:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). kuupäev ()
välja arvatud (ValueError, TypeError):
the_date = pole
tagastage_kuupäev
def mdy (any_date):
"" "Tagastab stringikuupäeva vormingus kk / pp / aaa. Sisestage Pythoni kuupäev või stringi kuupäev kk / pp / aaaa vormingus" ""
if type (any_date) == str:
any_date = to_date (anydate)
# Veenduge, et selle kuupäev oleks edastatud
vajaduse korral (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
muu:
s_date = "Vale kuupäev"
tagasta s_date
def to_curr (anynum, len = 0):
"" "Tagastab numbri stringina koos komadega ja komadega. Pikkus on valikuline" ""
s = "sobimatu summa"
proovige:
x = ujuk (anynum)
välja arvatud ValueError:
x = puudub
kui püsivus (x, ujuk):
s = '$' + f "{x:,. 2f}"
kui len> 0:
s = s.rjust (len)
tagasi s

Sama faili saate ise luua ja nimetada sellele myfunctions.py, kui soovite seda jälgida. Pange tähele, et fail sisaldab ainult funktsioone. Nii et kui te seda käivitate, ei tee see ekraanil midagi, kuna seal pole koodi, mis helistaks mõnele neist funktsioonidest.

Nende funktsioonide kasutamiseks ükskõik millises kirjutatud Pythoni rakenduses või programmis kopeerige esmalt see myfunc.py fail samasse kausta kui ülejäänud Pythoni kood, mida kirjutate. Seejärel saate uue lehe loomisel importida myfunci moodulina nagu iga teise loodud mooduli. Lihtsalt kasutage

impordi myfunc

Kõigi selle mooduli kaudu kutsutavate funktsioonide ees peate kasutama mooduli nime. Nii et kui soovite koodi veidi loetavamaks muuta, võite selle asemel kasutada järgmist:

impordi myfunc kui minu

Kui see on teie avajoon, võite viidata oma kohandatud Pythoni mooduli mis tahes funktsioonile minu abil. kui eesliide. Näiteks funktsioon my.to_date () to_date funktsiooni kutsumiseks. Siin on leht, mis impordib mooduli ja testib seejärel kõiki kolme funktsiooni, kasutades seda minu süntaksit:

# Impordi kogu kood saidilt myfunc.py kui minu.
impordi myfunc kui minu
# Vajad selles koodis kuupäevi
alates datetime import datetime as dt
# Mõned lihtsad testiandmed.
string_date = "31.12.2019"
# Teisendage stringi kuupäev datetime.date
prindi (my.to_date (string_date))
täna = täna täna ()
# Kuva tänane kuupäev vormingus kk / pp / aaaa.
prindi (my.mdy (täna))
dollar_amt = 12345.678
# Näita seda suurt numbrit valuutavormingus.
prindi (my.to_curr (dollar_amt))

Prefiksi abil saate ka vahele jätta, kui impordite üksusi nime järgi. Sel juhul tähendab see, et võite helistada to_date () ja mdy () ja to_curr () ilma, et kasutaksite minu. eesliide. Esimene koodirida peaks olema

myfunci impordist to_date, mdy, to_curr

Ülejäänud kood oleks sama nagu eelmises näites, välja arvatud juhul, kui võite jätta minu võtme välja. eesliited nagu järgmises koodis:

# Impordi kogu kood saidilt myfunc.py nime järgi.
myfunci impordist to_date, mdy, to_curr
# Vajad selles koodis kuupäevi
alates datetime import datetime as dt
# Mõned lihtsad testiandmed.
string_date = "31.12.2019"
# Teisendage stringi kuupäev datetime.date
printimine (to_date (string_date))
täna = täna täna ()
# Kuva tänane kuupäev vormingus kk / pp / aaaa.
print (mdy (täna))
dollar_amt = 12345.678
# Näita seda suurt numbrit valuutavormingus.
printimine (to_curr (dollar_amt))

Lisateabe saamiseks vaadake neid 10 hämmastavat Pythoni programmeerimisressurssi.