Modul Python: Belajar Membuat dan Mengimpor Modul Kustom dan Built-in

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 importkata 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 examplesecara langsung dalam tabel simbol saat ini. Itu hanya mengimpor nama modul di examplesana.

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 importpernyataan 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 mathmodul menjadi m. Ini dapat menghemat waktu mengetik dalam beberapa kasus.

Perhatikan bahwa nama mathtersebut tidak dikenali dalam cakupan kami. Karenanya, math.pitidak valid, dan m.pimerupakan 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 piatribut dari mathmodul.

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 exampleyang kami miliki di awal.

Kita dapat menggunakan dirdi examplemodul 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')

Artikel yang menarik...