1. ProgrammingPython Czym jest moduł Python?

Alan Shovic, John Shovic

Dla wszystkich informacji o modułach Python moduł jest właściwie bardzo prostą rzeczą. W rzeczywistości moduł Pythona to tylko plik z rozszerzeniem .py, który zawiera kod Pythona. Otóż ​​to. Więc za każdym razem, gdy piszesz kod Pythona i zapisujesz go w pliku .py, w zasadzie tworzysz moduł.

Nie oznacza to, że zawsze musisz używać tego kodu jako modułu. Z pewnością można go traktować jako samodzielną aplikację. Ale jeśli chcesz stworzyć własny moduł Pythona, z kodem, którego często potrzebujesz w swojej pracy, z pewnością możesz to zrobić.

programowanie modułów Python

Moduł Python to także tylko plik z rozszerzeniem .py. Nazwa modułu jest taka sama jak nazwa pliku (bez pliku .py). Jak każdy plik .py, moduł zawiera kod Pythona. Jako działający przykład załóżmy, że chcesz mieć trzy funkcje upraszczające formatowanie dat i wartości walutowych. Możesz utworzyć dowolną nazwę dla każdej funkcji. W naszym przykładzie roboczym użyjemy tych trzech nazw:

  • to_date (any_str): Pozwala przekazać dowolną datę ciągu (any_str) w formacie mm / dd / rr lub mm / dd / rrrr i odsyła datę / godzinę data Python, której można użyć do obliczenia daty. mdy (any_date): Umożliwia podanie dowolnej daty lub daty i godziny w Pythonie oraz zwraca datę ciągu sformatowaną w formacie mm / dd / rrrr do wyświetlenia na ekranie. to_curr (any_num, len): Pozwala przekazać dowolną liczbę zmiennoprzecinkową lub liczbę całkowitą Pythona i zwraca ciąg z wiodącym znakiem dolara, przecinki w tysiącach miejsc i dwie cyfry grosza. Długość jest opcjonalną liczbą długości. Jeśli jest podana, zwracana wartość zostanie wypełniona po lewej stronie spacjami odpowiadającymi podanej długości

Oto cały kod:

# Zawiera niestandardowe funkcje dla dat i wartości walutowych.
zaimportuj datetime jako dt
def to_date (any_str):
„” „Konwertuj ciąg mm / dd / rr lub mm / dd / rrrr na datetime.date lub Brak, jeśli jest niepoprawna.” „”
próbować:
if len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). date ()
jeszcze:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). date ()
oprócz (ValueError, TypeError):
the_date = Brak
zwróć datę
def mdy (any_date):
„” „Zwraca datę ciągu w formacie mm / dd / rrrr. Przekaż datę w języku Python lub datę ciągu w formacie mm / dd / rrrr” „”
if type (any_date) == str:
any_date = to_date (anydate)
# Upewnij się, że data jest przesyłana dalej
if isinstance (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
jeszcze:
s_date = "Nieprawidłowa data"
zwraca s_datę
def to_curr (anynum, len = 0):
„” „Zwraca liczbę jako ciąg znaków z $ i przecinkami. Długość jest opcjonalna„ ”„ ”
s = „Nieprawidłowa kwota”
próbować:
x = float (anynum)
oprócz ValueError:
x = brak
if isinstance (x, float):
s = „$” + f "{x:,. 2f}"
jeśli len> 0:
s = s.rjust (len)
zwroty

Możesz sam stworzyć ten sam plik i nazwać go myfunctions.py, jeśli chcesz kontynuować. Zauważ, że plik zawiera tylko funkcje. Jeśli go uruchomisz, nie zrobi nic na ekranie, ponieważ nie ma w nim kodu wywołującego żadną z tych funkcji.

Aby korzystać z tych funkcji w dowolnej napisanej aplikacji lub programie Python, najpierw skopiuj ten plik myfunc.py do tego samego folderu, co reszta pisanego kodu Python. Następnie, kiedy tworzysz nową stronę, możesz zaimportować myfunc jako moduł, tak jak każdy inny moduł stworzony przez kogoś innego. Po prostu użyj

import myfunc

Będziesz musiał użyć nazwy modułu przed dowolną funkcją wywoływaną z tego modułu. Jeśli więc chcesz, aby kod był bardziej czytelny, możesz użyć tego:

zaimportuj myfunc jako mój

Dzięki temu jako linii otwierającej możesz odwoływać się do dowolnej funkcji w swoim niestandardowym module Python za pomocą my. jako przedrostek. Na przykład my.to_date (), aby wywołać funkcję to_date. Oto strona, która importuje moduł, a następnie testuje wszystkie trzy funkcje przy użyciu mojej składni:

# Zaimportuj cały kod z myfunc.py jako mój.
zaimportuj myfunc jako mój
# Potrzebujesz dat w tym kodzie
z datetime importuj datetime jako dt
# Niektóre proste dane testowe.
string_date = "31.12.2019"
# Konwertuj datę ciągu na datetime.date
print (moja.to_data (string_date))
Today = dt.today ()
# Pokaż dzisiejszą datę w formacie mm / dd / rrrr.
print (my.mdy (dzisiaj))
dollar_amt = 12345.678
# Pokaż tę dużą liczbę w formacie walutowym.
print (my.to_curr (dollar_amt))

Możesz także pominąć użycie prefiksu, jeśli importujesz elementy według nazwy. W tym przypadku oznacza to, że możesz wywołać to_date () i mdy () i to_curr () bez użycia my. prefiks. Musi to być pierwszy wiersz kodu

from myfunc import to_date, mdy, to_curr

Reszta kodu byłaby taka sama jak w poprzednim przykładzie, z wyjątkiem tego, że możesz pominąć mój. prefiksy jak w następującym kodzie:

# Zaimportuj cały kod z myfunc.py według nazwy.
from myfunc import to_date, mdy, to_curr
# Potrzebujesz dat w tym kodzie
z datetime importuj datetime jako dt
# Niektóre proste dane testowe.
string_date = "31.12.2019"
# Konwertuj datę ciągu na datetime.date
print (to_date (string_date))
Today = dt.today ()
# Pokaż dzisiejszą datę w formacie mm / dd / rrrr.
print (mdy (dzisiaj))
dollar_amt = 12345.678
# Pokaż tę dużą liczbę w formacie walutowym.
print (to_curr (dollar_amt))

Sprawdź te 10 niesamowitych zasobów programistycznych w języku Python, aby uzyskać więcej informacji.