Modul Python: Belajar Membuat dan Mengimport Modul Khusus dan Built-In

Dalam artikel ini, anda akan belajar membuat dan mengimport modul khusus di Python. Anda juga akan menemui teknik yang berbeza untuk mengimport dan menggunakan modul khusus dan terbina dalam di Python.

Video: Modul Python

Apakah modul dalam Python?

Modul merujuk kepada fail yang mengandungi pernyataan dan definisi Python.

Fail yang mengandungi kod Python, misalnya: example.pydipanggil modul, dan nama modulnya adalah example.

Kami menggunakan modul untuk menguraikan program besar menjadi fail kecil yang dapat dikendalikan dan disusun. Selanjutnya, modul menyediakan penggunaan semula kod.

Kita dapat menentukan fungsi yang paling banyak digunakan dalam modul dan mengimportnya, bukannya menyalin definisi mereka ke dalam program yang berbeza.

Mari kita buat modul. Taipkan yang berikut 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 menentukan fungsi add()di dalam modul bernama example. Fungsi mengambil dua nombor dan mengembalikan jumlahnya.

Bagaimana cara mengimport modul di Python?

Kita boleh mengimport definisi di dalam modul ke modul lain atau jurubahasa interaktif di Python.

Kami menggunakan importkata kunci untuk melakukan ini. Untuk mengimport modul yang telah ditentukan sebelumnya example, kami taipkan perkara berikut dalam arahan Python.

 >>> import example

Ini tidak mengimport nama fungsi yang ditentukan examplesecara langsung dalam jadual simbol semasa. Ia hanya mengimport nama modul di examplesana.

Dengan menggunakan nama modul, kita dapat mengakses fungsi menggunakan .operator titik . Sebagai contoh:

 >>> example.add(4,5.5) 9.5

Python mempunyai banyak modul standard. Anda boleh melihat senarai lengkap modul standard Python dan kes penggunaannya. Fail-fail ini ada di direktori Lib di dalam lokasi di mana anda memasang Python.

Modul standard boleh diimport dengan cara yang sama seperti kita mengimport modul yang ditentukan pengguna.

Terdapat pelbagai cara untuk mengimport modul. Mereka disenaraikan di bawah …

Penyataan import Python

Kita dapat mengimport modul menggunakan importpernyataan dan mengakses definisi di dalamnya menggunakan operator titik seperti yang dijelaskan di atas. Inilah contohnya.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Semasa anda menjalankan program, outputnya adalah:

 Nilai pi ialah 3.141592653589793

Import dengan penamaan semula

Kita boleh mengimport modul dengan menamakannya seperti berikut:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Kami telah menamakan semula mathmodul sebagai m. Ini dapat menjimatkan masa menaip dalam beberapa kes.

Perhatikan bahawa nama mathitu tidak dikenali dalam skop kami. Oleh itu, math.pitidak sah, dan m.pimerupakan pelaksanaan yang betul.

Python dari… penyataan import

Kita boleh mengimport nama tertentu dari modul tanpa mengimport modul secara keseluruhan. Inilah contohnya.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Di sini, kami hanya mengimport piatribut dari mathmodul.

Dalam kes sedemikian, kami tidak menggunakan operator titik. Kami juga dapat mengimport beberapa atribut seperti berikut:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Import semua nama

Kita boleh mengimport semua nama (definisi) dari modul menggunakan konstruk berikut:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Di sini, kami telah mengimport semua definisi dari modul matematik. Ini merangkumi semua nama yang kelihatan dalam skop kami kecuali yang bermula dengan garis bawah (definisi peribadi).

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 untuk mengetahui nama-nama yang ditentukan dalam modul.

Sebagai contoh, kita telah menentukan fungsi add()dalam modul exampleyang kita ada pada awalnya.

Kita boleh menggunakan dirdalam examplemodul dengan cara yang berikut:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Di sini, kita dapat melihat senarai nama yang disusun (bersama dengan add). Semua nama lain yang bermula dengan garis bawah adalah atribut Python lalai yang dikaitkan dengan modul (tidak ditentukan pengguna).

Contohnya, __name__atribut mengandungi nama modul.

 >>> import example >>> example.__name__ 'example'

Semua nama yang ditentukan dalam ruang nama semasa kami dapat diketahui dengan menggunakan dir()fungsi tersebut tanpa ada argumen.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

Artikel menarik...