1. ProgrammingPythonKas ir Python modulis?

Autori Alans Šovics, Džons Šovics

Visiem Hiplas par Python moduļiem modulis patiesībā ir diezgan vienkārša lieta. Faktiski Python modulis ir tikai fails ar .py paplašinājumu, kas satur Python kodu. Tieši tā. Tāpēc katru reizi, rakstot Python kodu un saglabājot to .py failā, jūs principā esat izveidojis moduli.

Tas nenozīmē, ka šis kods vienmēr ir jāizmanto kā modulis. To noteikti var uzskatīt par atsevišķu lietotni. Bet, ja jūs vēlētos izveidot savu Python moduli ar tikai kodu, kas jums bieži nepieciešams jūsu pašu darbā, jūs noteikti to varētu izdarīt.

Python moduļu programmēšana

Python modulis ir arī tikai fails ar .py faila nosaukuma paplašinājumu. Moduļa nosaukums ir tāds pats kā faila nosaukums (bez .py). Tāpat kā jebkurš .py fails, modulis satur Python kodu. Kā darba piemērs, pieņemsim, ka jums ir trīs funkcijas, lai vienkāršotu datumu un valūtas vērtību formatēšanu. Katrai funkcijai jūs varat izveidot jebkuru vārdu, kas jums patīk. Savam darba piemēram mēs izmantosim šādus trīs nosaukumus:

  • to_date (any_str): ļauj ievadīt jebkuru virknes (any_str) datumu mm / dd / ggg vai mm / dd / gggg formātā un nosūta atpakaļ Python datetime.date, kuru varat izmantot datuma aprēķiniem. mdy (any_date): ļauj iet caur jebkuru Python datumu vai dienas laiku un atgriež virknes datumu, kas formatēts mm / dd / gggg formātā, lai to parādītu ekrānā. to_curr (any_num, len): Ļauj iet caur jebkuru Python pludiņa vai vesela skaitļa numuru un atgriež virkni ar vadošo dolāra zīmi, komatu tūkstošos vietās un diviem cipariem penniem. Len ir garuma izvēles numurs. Ja tā tiek sniegta, atgriešanas vērtība tiek aizpildīta kreisajā pusē ar atstarpēm, lai tās atbilstu norādītajam garumam

Tātad šeit ir viss kods tam:

# Satur pielāgotas funkcijas datumiem un valūtas vērtībām.
importēt datumu kā dt
def to_date (any_str):
"Pārvērst mm / dd / ggg vai mm / dd / gggg virkni dattetime.date vai Nav, ja datums nav derīgs." ""
izmēģināt:
ja len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). date ()
cits:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). date ()
izņemot (ValueError, TypeError):
the_date = nav
atgriezt the_date
def mdy (any_date):
"" "Atgriež virknes datumu formātā mm / dd / gggg. Ievadiet Python datumu vai virknes datumu formātā mm / dd / gggg" ""
ja tips (any_date) == str:
any_date = to_date (anydate)
# Pārliecinieties, vai tiek pārsūtīts datuma datums
ja nepieciešama (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
cits:
s_date = "Nederīgs datums"
atgriezt s_date
def to_curr (anynum, len = 0):
"" "Atgriež skaitli kā virkni ar $ un komatu. Garums nav obligāts" ""
s = "nederīga summa"
izmēģināt:
x = pludiņš (jebkurš skaitlis)
izņemot ValueError:
x = nav
ja pastāv (x, pludiņš):
s = '$' + f "{x:,. 2f}"
ja len> 0:
s = s.rjust (len)
atgriezties s

To pašu failu varat izveidot pats un nosaukt to par myfunctions.py, ja vēlaties sekot līdzi. Ievērojiet, ka failā ir tikai funkcijas. Tātad, ja jūs to palaižat, ekrānā tas neko nedarīs, jo tajā nav koda, kas izsauktu kādu no šīm funkcijām.

Lai izmantotu šīs funkcijas jebkurā Python lietotnē vai programmā, vispirms uzrakstiet myfunc.py failu tajā pašā mapē kā pārējo Python kodu, kuru rakstāt. Pēc tam, izveidojot jaunu lapu, jūs varat importēt myfunc kā moduli tāpat kā jebkuru citu moduli, ko izveidojis kāds cits. Vienkārši izmantojiet

importēt myfunc

Moduļa nosaukums būs jāizmanto jebkuras funkcijas priekšā, ko jūs izsaucat no šī moduļa. Tātad, ja vēlaties padarīt kodu nedaudz lasāmāku, tā vietā varat izmantot šo:

importēt myfunc kā manu

Izmantojot to kā sākuma līniju, jūs varat atsaukties uz jebkuru funkciju jūsu pielāgotajā Python modulī ar manu. kā priedēkli. Piemēram, my.to_date (), lai izsauktu funkciju to_date. Šī ir lapa, kas importē moduli un pēc tam testē visas trīs funkcijas, izmantojot manu sintakse:

# Importējiet visu kodu no myfunc.py kā manu.
importēt myfunc kā manu
# Šajā kodā nepieciešami datumi
no datetime import datetime as dt
# Daži vienkārši testa dati.
string_date = "31/12/2019"
# Pārvērst virknes datumu dattetime.date
drukāt (my.to_date (string_date))
šodien = šodien šodien ()
# Rādīt šodienas datumu formātā mm / dd / gggg.
drukāt (my.mdy (šodien))
dolāra_amt = 12345.678
# Rādīt šo lielo numuru valūtas formātā.
drukāt (my.to_curr (dollar_amt))

Izmantojot prefiksu, varat arī to izlaist, ja preces importējat pēc nosaukuma. Šajā gadījumā tas nozīmē, ka jūs varētu piezvanīt to_date () un mdy () un to_curr (), neizmantojot my. priedēklis. Pirmajai koda rindai jābūt

no myfunc importa līdz_datums, mdijs, līdz_kurš

Pārējais kods būtu tāds pats kā iepriekšējā piemērā, izņemot to, ka varat atstāt manu. priedēkļi, kā norādīts šādā kodā:

# Pēc nosaukuma importējiet visu kodu no myfunc.py.
no myfunc importa līdz_datums, mdijs, līdz_kurš
# Šajā kodā nepieciešami datumi
no datetime import datetime as dt
# Daži vienkārši testa dati.
string_date = "31/12/2019"
# Pārvērst virknes datumu dattetime.date
drukāt (to_date (string_date))
šodien = šodien šodien ()
# Rādīt šodienas datumu formātā mm / dd / gggg.
drukāt (mdy (šodien))
dolāra_amt = 12345.678
# Rādīt šo lielo numuru valūtas formātā.
drukāt (līdz_kursam (dolāra_amts))

Pārbaudiet šos 10 pārsteidzošos Python programmēšanas resursus, lai iegūtu papildinformāciju.