1. ProgrammingPythonKaj je modul Python?

Avtor Alan Shovic, John Shovic

Za vse napake o Python modulih je modul pravzaprav precej preprosta stvar. Pravzaprav je modul Python samo datoteka s pripono .py, ki vsebuje kodo Python. To je to. Kadarkoli napišete kodo Python in jo shranite v datoteko .py, ste v bistvu ustvarili modul.

To ne pomeni, da morate kodo vedno uporabljati kot modul. Zagotovo ga lahko obravnavamo kot samostojno aplikacijo. Če pa bi želeli ustvariti svoj lastni modul Python, s preprosto kodo, ki jo pogosto potrebujete pri svojem delu, bi to zagotovo lahko storili.

programiranje Python modulov

Modul Python je tudi samo datoteka s pripono .py datoteke. Ime modula je isto kot ime datoteke (brez .py). Tako kot katera koli datoteka .py vsebuje modul Python. Predpostavimo, da želite imeti tri funkcije za poenostavitev datumov oblikovanja in vrednosti valut. Za vsako funkcijo lahko sestavite poljubno ime. Za svoj delovni primer bomo uporabili ta tri imena:

  • to_date (any_str): omogoči prenos katerega koli niza (any_str) datuma v formatu mm / dd / yy ali mm / dd / yyyy in pošlje nazaj Python datetime.date, ki ga lahko uporabite za izračune datumov. mdy (any_date): omogoči prenos katerega koli datuma ali datuma Pythona in vrne datum niza, oblikovan v mm / dd / yyyy formatu za prikaz na zaslonu. to_curr (any_num, len): omogoča, da vnesete katero koli Python float ali celo število in vrne niz z vodilnim znakom dolarja, vejicami na tisočih mestih in dvema števkama za denar. Dolžina je dolžina neobvezna številka. Če je podana, bo na levi strani vrnjena vrednost obložena s presledki, ki ustrezajo navedeni dolžini

Torej, tukaj je vsa koda za to:

# Vsebuje funkcije po meri za datume in vrednosti valut.
uvozi datum kot dt
def to_date (any_str):
"" "Pretvori niz mm / dd / yy ali mm / dd / yyyy v datetime.date ali v None, če je neveljaven datum." "
poskusi:
če je len (any_str) == 10:
the_date = dt.datetime.strptime (kateri koli_str, '% m /% d /% Y'). datum ()
drugo:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). datum ()
razen (ValueError, TypeError):
the_date = Brez
vrni datum
def mdy (any_date):
"" "Vrne datum niza v formatu mm / dd / yyyy. Prenesite datum Python ali datum niza v formatu mm / dd / yyyy" ""
če vtipkate (any_date) == str:
any_date = to_date (anydate)
# Poskrbite, da bo datum preusmerjen
če je snov (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
drugo:
s_date = "Neveljaven datum"
vrniti s_date
def to_curr (anynum, len = 0):
"" "Vrne številko kot niz z $ in vejicami. Dolžina je neobvezna" ""
s = "Neveljaven znesek"
poskusi:
x = plovec (anynum)
razen ValueError:
x = Jih ni
če je snov (x, plovec):
s = '$' + f "{x:,. 2f}"
če je len> 0:
s = s.rjust (len)
vrniti s

Isto datoteko lahko ustvarite sami in jo poimenujete myfunctions.py, če želite nadaljevati. Upoštevajte, da datoteka vsebuje samo funkcije. Če ga zaženete, na zaslonu ne bo naredil ničesar, ker tam ni kode, ki bi klicala katero od teh funkcij.

Če želite uporabljati te funkcije v kateri koli aplikaciji ali programu Python, ki ga pišete, najprej kopirajte to datoteko myfunc.py v isto mapo kot preostalo kodo Python, ki jo pišete. Ko ustvarite novo stran, lahko myfunc uvozite kot modul tako kot vsak drug modul, ki ga je ustvaril nekdo drug. Samo uporabite

uvoz myfunc

Ime modula boste morali uporabiti pred katero koli funkcijo, ki jo pokličete iz tega modula. Če želite kodo narediti bolj berljivo, jo lahko uporabite namesto tega:

uvozim myfunc kot moj

S tem se lahko kot začetno vrstico sklicujete na katero koli funkcijo v vašem modulu Python po meri z mojo. kot predpono. Na primer, my.to_date () pokliče funkcijo to_date. Tukaj je stran, ki uvozi modul in nato preizkusi vse tri funkcije z uporabo moje sintakse:

# Uvozi vso kodo iz myfunc.py kot svojo.
uvozim myfunc kot moj
# V tej kodi potrebujete datume
from import date date datetime kot dt
# Nekaj ​​preprostih testnih podatkov.
string_date = "31.12.2019"
# Pretvori datum niza v datetime.date
tisk (my.to_date (string_date))
danes = dt.today ()
# Prikaži današnji datum v formatu mm / dd / yyyy
tisk (my.mdy (danes))
dollar_amt = 12345.678
# Pokaži to veliko številko v obliki valute.
tisk (my.to_curr (dollar_amt))

Če uvažate elemente po imenu, lahko uporabite tudi predpono. V tem primeru to pomeni, da lahko pokličete to_date () in mdy () in to_curr (), ne da bi uporabili moj. predpono. Prva vrstica kode bi morala biti

iz myfunc uvoz to_date, mdy, to_curr

Preostala koda bi bila enaka kot v prejšnjem primeru, le da lahko pustite mojo. predpone kot v naslednji kodi:

# Uvozite vso kodo iz myfunc.py po imenu.
iz myfunc uvoz to_date, mdy, to_curr
# V tej kodi potrebujete datume
from import date date datetime kot dt
# Nekaj ​​preprostih testnih podatkov.
string_date = "31.12.2019"
# Pretvori datum niza v datetime.date
tisk (to_date (string_date))
danes = dt.today ()
# Pokaži današnji datum v formatu mm / dd / yyyy
tisk (mdy (danes))
dollar_amt = 12345.678
# Pokaži to veliko številko v obliki valute.
tisk (v_kurs (dolar_amt))

Oglejte si teh 10 neverjetnih programov Python za več informacij.