Di artikel ini, Anda akan belajar membuat dan mengimpor modul kustom dengan Python. Selain itu, Anda akan menemukan teknik berbeda untuk mengimpor dan menggunakan modul khusus dan bawaan dengan Python.
Video: Modul Python
Apa itu modul di Python?
Modul merujuk ke file yang berisi pernyataan dan definisi Python.
File yang berisi kode Python, misalnya example.py
:, disebut modul, dan nama modulnya adalah example
.
Kami menggunakan modul untuk memecah program besar menjadi file kecil yang dapat dikelola dan diatur. Selain itu, modul menyediakan kode yang dapat digunakan kembali.
Kita dapat mendefinisikan fungsi yang paling sering kita gunakan dalam sebuah modul dan mengimpornya, daripada menyalin definisinya ke program yang berbeda.
Mari kita buat modul. Ketik berikut ini dan simpan sebagai example.py
.
# Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result
Di sini, kami telah mendefinisikan fungsi add()
di dalam modul bernama example
. Fungsi tersebut mengambil dua angka dan mengembalikan jumlahnya.
Bagaimana cara mengimpor modul dengan Python?
Kita dapat mengimpor definisi di dalam modul ke modul lain atau interpreter interaktif dengan Python.
Kami menggunakan import
kata kunci untuk melakukan ini. Untuk mengimpor modul kami yang telah ditentukan sebelumnya example
, kami mengetik yang berikut ini di prompt Python.
>>> import example
Ini tidak mengimpor nama fungsi yang ditentukan example
secara langsung dalam tabel simbol saat ini. Itu hanya mengimpor nama modul di example
sana.
Dengan menggunakan nama modul kita dapat mengakses fungsi tersebut menggunakan .
operator titik . Sebagai contoh:
>>> example.add(4,5.5) 9.5
Python memiliki banyak modul standar. Anda dapat melihat daftar lengkap modul standar Python dan kasus penggunaannya. File-file ini ada di direktori Lib di dalam lokasi tempat Anda menginstal Python.
Modul standar dapat diimpor dengan cara yang sama seperti kita mengimpor modul yang ditentukan pengguna.
Ada berbagai cara untuk mengimpor modul. Mereka terdaftar di bawah …
Pernyataan impor Python
Kita dapat mengimpor modul menggunakan import
pernyataan dan mengakses definisi di dalamnya menggunakan operator titik seperti dijelaskan di atas. Berikut ini contohnya.
# import statement example # to import standard module math import math print("The value of pi is", math.pi)
Saat Anda menjalankan program, hasilnya adalah:
Nilai pi adalah 3,141592653589793
Impor dengan penggantian nama
Kita dapat mengimpor modul dengan mengganti namanya sebagai berikut:
# import module by renaming it import math as m print("The value of pi is", m.pi)
Kami telah mengganti nama math
modul menjadi m
. Ini dapat menghemat waktu mengetik dalam beberapa kasus.
Perhatikan bahwa nama math
tersebut tidak dikenali dalam cakupan kami. Karenanya, math.pi
tidak valid, dan m.pi
merupakan implementasi yang benar.
Python dari… pernyataan import
Kita dapat mengimpor nama tertentu dari modul tanpa mengimpor modul secara keseluruhan. Berikut ini contohnya.
# import only pi from math module from math import pi print("The value of pi is", pi)
Di sini, kami hanya mengimpor pi
atribut dari math
modul.
Dalam kasus seperti itu, kami tidak menggunakan operator titik. Kami juga dapat mengimpor beberapa atribut sebagai berikut:
>>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045
Impor semua nama
Kita dapat mengimpor semua nama (definisi) dari modul menggunakan konstruksi berikut:
# import all names from the standard module math from math import * print("The value of pi is", pi)
Di sini, kami telah mengimpor semua definisi dari modul matematika. Ini mencakup semua nama yang terlihat dalam cakupan kami kecuali yang diawali dengan garis bawah (definisi pribadi).
Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.
Python Module Search Path
While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path
. The search is in this order.
- The current directory.
PYTHONPATH
(an environment variable with a list of directories).- The installation-dependent default directory.
>>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')
We can add and modify this list to add our own path.
Reloading a module
The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.
Suppose we have the following code in a module named my_module
.
# This module shows the effect of # multiple imports and reload print("This code got executed")
Now we see the effect of multiple imports.
>>> import my_module This code got executed >>> import my_module >>> import my_module
We can see that our code got executed only once. This goes to say that our module was imported only once.
Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.
Python provides a more efficient way of doing this. We can use the reload()
function inside the imp
module to reload a module. We can do it in the following ways:
>>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed
The dir() built-in function
Kita dapat menggunakan dir()
fungsi tersebut untuk mengetahui nama-nama yang didefinisikan di dalam modul.
Misalnya, kami telah mendefinisikan fungsi add()
di modul example
yang kami miliki di awal.
Kita dapat menggunakan dir
di example
modul dengan cara sebagai berikut:
>>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')
Di sini, kita dapat melihat daftar nama yang diurutkan (bersama dengan add
). Semua nama lain yang dimulai dengan garis bawah adalah atribut Python default yang terkait dengan modul (tidak ditentukan pengguna).
Misalnya, __name__
atribut berisi nama modul.
>>> import example >>> example.__name__ 'example'
Semua nama yang ditentukan dalam namespace kami saat ini dapat ditemukan menggunakan dir()
fungsi tanpa argumen apa pun.
>>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')