Impor modul masuk Python dengan Contoh

Apa saja modul yang ada di dalamnya Python?

Modul adalah file dengan kode python. Kode tersebut dapat berupa variabel, fungsi, atau kelas yang ditentukan. Nama file menjadi nama modul.

Misalnya, jika nama file Anda adalah guru99.py, maka nama modulnya adalah guru99. Dengan fungsionalitas modul, Anda dapat memecah kode Anda menjadi beberapa file berbeda daripada menulis semuanya di dalam satu file.

Apa Python modul impor?

File dianggap sebagai modul di python. Untuk menggunakan modul, Anda harus mengimpornya menggunakan impor kata kunci. Fungsi atau variabel yang ada di dalam file dapat digunakan di file lain dengan mengimpor modul. Fungsionalitas ini tersedia dalam bahasa lain, seperti skrip ketikan, JavaSkrip, java, ruby, dll.

Cara membuat dan mengimpor modul Python?

Sekarang kita akan membuat modul dan mengimpornya ke file lain.

Berikut alur untuk membuat dan mengimpor modul seperti yang ditunjukkan pada tangkapan layar:

Buat dan Impor Modul Python

Ikuti langkah-langkah yang diberikan untuk membuat modul dengan python.

Struktur folder yang digunakan untuk menguji kode adalah sebagai berikut:

modtest/
	test.py
	display.py	

Langkah 1) Buat file dan beri nama test.py

Langkah 2) Di dalam test.py buat fungsi bernama display_message()

Def display_message():
    return "Welcome to Guru99 Tutorials!"

Langkah 3) Sekarang buat file lain display.py.

Langkah 4) Di dalam display.py impor file moduletest.py, seperti yang ditunjukkan di bawah ini:

import test

Saat mengimpor, Anda tidak perlu menyebutkan test.py tetapi cukup nama filenya.

Langkah 5) Kemudian Anda dapat memanggil fungsi display_message() dari test.py di dalam display.py, Anda perlu menggunakan module_name.function_name.

Misalnya tes.display_message().

Import test
print(test.display_message())

Langkah 6) Ketika Anda menjalankan display.py, Anda akan mendapatkan yang berikut ini Keluaran:

Welcome to Guru99 Tutorials!

Mengimpor Kelas masuk Python

Sebelumnya, kita telah melihat modul sederhana dengan suatu fungsi. Di sini akan membuat kelas dan merujuk kelas tersebut ke dalam file lain.

Struktur folder untuk menguji kodenya adalah sebagai berikut:

myproj/
	Car.py
	display.py

Buat file bernama Car.py dengan kode berikut:

Nama file : Mobil.py

class Car:
	brand_name = "BMW"
	model = "Z4"
	manu_year = "2020"

	def __init__(self, brand_name, model, manu_year):
		self.brand_name = brand_name
		self.model = model
		self.manu_year = manu_year

	def car_details(self):
		print("Car brand is ", self.brand_name)
		print("Car model is ", self.model)
		print("Car manufacture year is ", self.manu_year)
			
			
	def get_Car_brand(self):
		print("Car brand is ", self.brand_name)

	def get_Car_model(self):
		print("Car model is ", self.model) 

Dalam berkas Car.py, terdapat atribut brand_name, model, dan manu_year. Fungsi yang didefinisikan di dalam kelas tersebut adalah car_details(), get_Car_brand(), get_Car_model().

Sekarang mari kita gunakan file Car.py sebagai modul di file lain bernama display.py.

Nama file : display.py

import Car
car_det = Car.Car("BMW","Z5", 2020)
print(car_det.brand_name)
print(car_det.car_details())
print(car_det.get_Car_brand())
print(car_det.get_Car_model())

Keluaran:

BMW
Car brand is  BMW
Car model is  Z5
Car manufacture year is  2020
Car brand is  BMW
Car model is  Z5

Jadi kita bisa mengakses semua variabel dan fungsi dari Car.py menggunakan modul Car.

Menggunakan modul dari untuk mengimpor

Anda hanya dapat mengimpor sebagian kecil modul, yaitu hanya fungsi dan nama variabel yang diperlukan dari modul, bukan mengimpor kode lengkap.

Bila Anda hanya ingin hal tertentu diimpor, Anda dapat menggunakan kata kunci “dari” untuk mengimpor apa yang Anda inginkan.

Jadi sintaksnya adalah

from  module import your function_name , variables,... etc.

Struktur folder yang digunakan untuk menguji kode adalah sebagai berikut:

modtest/
	test.py
	display.py	

Di test.py ada 2 fungsi seperti yang ditunjukkan :

Nama file : test.py

defdisplay_message():
	return "Welcome to Guru99 Tutorials!"
	
def display_message1():
	return "All about Python!"

Sekarang Anda menginginkan fungsi display_message(). Fungsi atau variabel yang Anda impor bisa langsung diakses seperti gambar di bawah ini:

Nama File : display.py

from test import display_message
print(display_message())

Keluaran:

Welcome to Guru99 Tutorials!

Sekarang jika Anda menggunakan fungsi display_message1() , itu akan memunculkan kesalahan bahwa fungsi tersebut tidak didefinisikan seperti yang ditunjukkan di bawah ini:

from test import display_message
print(display_message1())

Keluaran:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print(display_message1())
Name Error: name 'display_message1' is not defined

Mengimpor semuanya dari modul

Impor memungkinkan Anda mengimpor seluruh modul dengan menggunakan impor diikuti dengan nama modul, yaitu nama file atau pustaka yang akan digunakan.

sintaks:

Import module

Atau dengan menggunakan

from module import *

Struktur folder yang digunakan untuk menguji kode adalah sebagai berikut:

modtest/
	test.py
	display.py	

Berikut ini adalah rincian kode di dalam test.py

my_name = "Guru99"
my_address = "Mumbai"

defdisplay_message():
	return "Welcome to Guru99 Tutorials!"
	
	
def display_message1():
	return "All about Python!"

Menggunakan modul impor

Hanya menggunakan impor nama modul, untuk merujuk ke variabel dan fungsi di dalam modul, harus diawali dengan nama modul.

Example

Nama file : display.py

Import test
print(test.display_message())
print(test.display_message1())
print(test.my_name)
print(test.my_address)

Tes nama modul digunakan untuk merujuk pada fungsi dan variabel di dalam tes modul.

Keluaran:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

Menggunakan impor *

Mari kita lihat contoh penggunaan impor *. Menggunakan impor *, fungsi dan variabel dapat diakses langsung, seperti yang ditunjukkan pada contoh di bawah ini:

from test import *

print(display_message())
print(display_message1())
print(my_name)
print(my_address)

Keluaran:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

Fungsi dir()

Dir() adalah fungsi bawaan di python. dir() mengembalikan semua properti dan metode, termasuk properti bawaan objek tertentu.

Jadi ketika dir() digunakan pada modul, itu akan memberi Anda variabel, fungsi yang ada di dalam modul.

Berikut adalah contoh kerja dir() pada sebuah modul. Kita mempunyai kelas bernama Car.py, mari kita impor Car dan menugaskan ke dir() untuk melihat hasilnya.

Struktur folder untuk menguji kodenya adalah sebagai berikut:

test prop/
	Car.py
	test.py	

Nama file: Mobil.py

class Car:
	brand_name = "BMW"
	model = "Z4"
	manu_year = "2020"

	def __init__(self, brand_name, model, manu_year):
		self.brand_name = brand_name
		self.model = model
		self.manu_year = manu_year

	def car_details(self):
		print("Car brand is ", self.brand_name)
		print("Car model is ", self.model)
		print("Car manufacture year is ", self.manu_year)
			
			
	def get_Car_brand(self):
		print("Car brand is ", self.brand_name)

	def get_Car_model(self):
		print("Car model is ", self.model) 

Nama file: test.py

import Car

class_contents = dir(Car)
print(class_contents)

Outputnya memberi kita nama kelas dan semua fungsi yang didefinisikan di Car.py.

Anda juga dapat mencoba menggunakan dir() pada modul bawaan yang tersedia Python. Mari kita coba hal yang sama json modul seperti yang ditunjukkan pada contoh di bawah ini. Ini akan menampilkan semua properti dan metode yang tersedia json modul.

Import json
json_details = dir(json)
print(json_details)

Keluaran:

['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu
iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac
kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en
coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa
d', 'loads', 'scanner']

Paket Kami.

Paket adalah direktori dengan semua modul yang ditentukan di dalamnya. Untuk membuat a Python juru bahasa memperlakukannya sebagai sebuah paket, direktori Anda harus memiliki init.pyfile. init.py menjadikan direktori sebagai sebuah paket. Berikut adalah tata letak paket yang akan kita kerjakan.

Paket masuk Python

Nama paketnya adalah paket sayaUntuk mulai bekerja dengan paket tersebut, buat direktori bernama package/. Di dalam direktori tersebut, buat file kosong bernama __init__.py. Buat 3 file lagi module1.py, module2.py, dan module3.py dan tentukan fungsinya seperti yang ditunjukkan pada gambar. Berikut adalah detail module1.py, module2.py, dan module3.py

modul1.py

def mod1_func1():
print("Welcome to Module1 function1")

def mod1_func2():
print("Welcome to Module1 function2")

def mod1_func3():
print("Welcome to Module1 function3")

modul2.py

def mod2_func1():
print("Welcome to Module2 function1")

def mod2_func2():
print("Welcome to Module2 function2")

def mod2_func3():
print("Welcome to Module2 function3")

modul3.py

def mod3_func1():
print("Welcome to Module3 function1")

def mod3_func2():
print("Welcome to Module3 function2")

def mod3_func3():
print("Welcome to Module3 function3")

paketsiap digunakan. Sekarang panggil paket di dalam salah satu file Anda seperti yang ditunjukkan di bawah ini :test.py:

Di sini, mypackage.module1 diimpor dan diberi nama alias sebagai mod1. Demikian pula, Anda dapat menggunakan modul lain module2.py dan module3.py dari paket saya.

import mypackage.module1 as mod1

print(mod1.mod1_func1())
print(mod1.mod1_func2())
print(mod1.mod1_func2())

Keluaran:

Welcome to Module1 function1
None
Welcome to Module1 function2
None
Welcome to Module1 function2
None

Kami baru saja mendemonstrasikan paket dengan modul sederhana dengan fungsi di dalamnya. Sesuai proyek Anda, Anda juga dapat mengemas dengan sub-paket. Sub-folder/memiliki modul dengan kelas yang ditentukan.

Python Jalur Pencarian Modul

Selama eksekusi, ketika python muncul impor nama modul, penerjemah mencoba menemukan modul. Ia mencari modul dalam daftar modul bawaan. Later secara keseluruhan, direktori yang ditentukan di dalam sys.path.

Singkatnya, penerjemah melakukan pencarian berikut untuk menemukan modul:

  1. Di direktori Anda saat ini.
  2. Di dalam daftar modul bawaan
  3. Di dalam direktori sys.path

Anda bisa mendapatkan detail sys.path dengan mengimpor modul sys dan mencetak sys.path. Ini akan memberi Anda daftar direktori seperti yang ditunjukkan di bawah ini:

importsys
print(sys.path)

Keluaran:

['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\
\Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P
ython37\\DLLs']

Anda juga dapat mengubah jalur dan menyimpan direktori sesuai kebutuhan Anda.

Menggunakan alias modul dalam impor

Anda juga dapat mengubah nama modul menjadi bentuk yang lebih pendek dengan memberikan nama alias padanya. Aliasnya bisa dilakukan dengan menggunakan kata kunci.

sintaks:

import filename as alias name

Struktur folder untuk menguji kodenya adalah sebagai berikut:

Mod test/
	test.py
	display.py	

Berikut ini adalah kode di dalam test.py

my_name = "Guru99"
my_address = "Mumbai"

def display_message():
	return "Welcome to Guru99 Tutorials!"	
	
def display_message1():
	return "All about Python!"

Sekarang akan menggunakan alias untuk test.py di display.py

Import test as t

print(t.display_message())
print(t.display_message1())
print(t.my_name)
print(t.my_address)

Alias ​​​​yang digunakan untuk modul pengujian adalah t . Jadi fungsi dan variabel dari test.py bisa dirujuk menggunakan alias t.

Keluaran:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

Impor Absolut dan Relatif masuk Python

Anda sekarang tahu cara mengimpor file sebagai modul di dalam file lain. Sekarang mari kita lihat cara mengelola file yang tersedia di folder. File dalam folder dapat diimpor dengan menggunakan impor absolut atau relatif.

Anggaplah Anda memiliki struktur folder proyek, seperti yang ditunjukkan di bawah ini:

Impor Absolut dan Relatif masuk Python

Folder root adalah proyek saya/. Ini memiliki dua subfolder paket1 dan paket2.

Folder package1 memiliki dua modul, module1.py dan module2.py.

Folder package2 memiliki satu kelas myclass.py, sub-paket subpkg dengan module3.py, dan terakhir module4.py.

  • Di module1.py, ada fungsi yang disebut myfunc1.
  • Di module2.py, ada fungsi yang disebut myfunc2.
  • Di module3.py, ada fungsi yang disebut myfunc3.
  • Di module4.py, ada fungsi yang disebut myfunc4.

Menggunakan Impor Absolut

Untuk impor Absolut, Anda perlu menambahkan seluruh jalur modul Anda langsung dari folder akar proyek.

Sekarang mari kita lihat bagaimana memanfaatkan impor absolut untuk merujuk pada fungsi yang ada di setiap modul.

Untuk bekerja dengan functionmyfunc1, Anda perlu mengimpor sebagai berikut:

from package1.module1  import  myfunc1
or
from package1 import module1
module1.myfunc1()  

Untuk bekerja dengan fungsi myfunc3 Anda perlu mengimpor sebagai berikut:

from package1.subpkg.module3  import  myfunc3
or
from package1.subpkg import module3
module3.myfunc3()  

Keuntungan dan Kerugian menggunakan impor absolut

Berikut keuntungan menggunakan impor absolut:

  • Menjadi mudah untuk melacak kembali modul untuk pemeriksaan kode.
  • Mudah digunakan dan sangat mudah.
  • Jika proyek dipindahkan ke jalur lain, impornya tetap sama.

Kerugian menggunakan impor absolut

Berikut ini kerugian menggunakan impor absolut:

kekurangan:

  • Jalur impor bisa menjadi sangat panjang jika modulnya bersarang, dan jika nama modulnya panjang.

Menggunakan Impor Relatif

Mengingat struktur folder yang sama yang disebutkan di bawah, kita akan melihat cara mengimpornya menggunakan impor relatif.

Dalam impor relatif, modul yang akan diimpor relatif terhadap lokasi saat ini yang merupakan lokasi dimana pernyataan import berada.

Sintaksis

Dalam impor relatif, Anda perlu menambahkan titik (.) sebelum nama modul saat mengimpor menggunakan dari.

Ini akan menjadi 2 titik (..) sebelum nama modul jika modul berada satu tingkat di atas dari lokasi saat ini.

Mengacu pada gambar struktur folder di atas, kita mempunyai modul berikut beserta fungsinya, yang perlu kita rujuk.

  • Di module1.py, ada fungsi yang disebut myfunc1.
  • Di module2.py, ada fungsi yang disebut myfunc2.
  • Di module3.py, ada fungsi yang disebut myfunc3.
  • Di module4.py, ada fungsi yang disebut myfunc4.

Untuk bekerja dengan functionmyfunc1 Anda perlu mengimpor sebagai berikut:

from  .module1  import  myfunc1

Untuk bekerja dengan fungsi myfunc3, Anda perlu mengimpor sebagai berikut:

from  .subpkg.module3  import  myfunc3

Keuntungan Impor Relatif

Keuntungan:

  • Sangat mudah untuk bekerja dengan impor relatif.
  • Dari lokasi saat ini, impor dapat dipersingkat dibandingkan dengan impor absolut.

Kerugian Impor Relatif

kekurangan:

  • Dengan menggunakan impor relatif, sulit untuk melacak kembali di mana kode tersebut berada

Kesimpulan

  • Impor masuk Python membantu Anda merujuk ke kode, yaitu, .functions/objects yang ditulis dalam file lain. Ini juga digunakan untuk mengimpor pustaka/paket python yang diinstal menggunakan pip(python package manager), dan Anda perlu menggunakannya dalam kode Anda.
  • Fungsi impor tersedia dalam bahasa lain seperti TypeScript, JavaSkrip, java, ruby, dll.
  • Modul python adalah kode yang ditulis di dalam file, misalnya (test.py). Di dalam file Anda, Anda dapat menentukan variabel, fungsi, atau kelas Anda. Seluruh file menjadi modul dan dapat diimpor ke dalam file lain untuk merujuk ke kode.
  • Dengan fungsionalitas modul, Anda dapat memecah kode Anda menjadi beberapa file berbeda daripada menulis semuanya di dalam satu file. Later, menggunakan impor, Anda dapat merujuk ke kode di dalam file yang Anda perlukan.
  • Python memiliki modul bawaannya, dan juga perpustakaan/paket eksternal yang diinstal menggunakan a manajer paket python (pip), misalnya pandas, NumPy, dll. disebut sebagai modul.
  • Anda hanya dapat mengimpor sebagian kecil modul, yaitu hanya fungsi dan nama variabel yang diperlukan dari modul, bukan mengimpor kode lengkap.
  • Anda juga dapat mengubah nama modul menjadi bentuk yang lebih pendek dengan memberikan nama alias padanya. Aliasnya bisa dilakukan dengan menggunakan kata kunci.
  • Paket adalah direktori dengan semua modul yang ditentukan di dalamnya. Untuk membuat a Python juru bahasa memperlakukannya sebagai sebuah paket, direktori Anda harus memiliki __init.pyfile. init.py menjadikan direktori sebagai sebuah paket. Berikut adalah tata letak paket yang akan kita kerjakan.
  • Selama eksekusi, ketika python muncul impor nama modul, penerjemah mencoba menemukan modul. Ia mencari modul dalam daftar modul bawaan. Later secara keseluruhan, direktori yang ditentukan di dalam sys.path.
  • Untuk impor Absolut, Anda perlu menambahkan seluruh jalur modul Anda langsung dari folder akar proyek.
  • Dalam impor relatif, modul yang akan diimpor relatif terhadap lokasi saat ini yang merupakan lokasi dimana pernyataan import berada.