Jika Anda memiliki sekumpulan metode dalam sebuah file, apakah ada cara untuk menyertakan file tersebut di file lain, tetapi memanggilnya tanpa awalan apa pun (mis. Awalan file)?
Jadi jika saya memiliki:
[Math.py]
def Calculate ( num )
Bagaimana cara menyebutnya seperti ini:
[Tool.py]
using Math.py
for i in range ( 5 ) :
Calculate ( i )
from Math import *
ini tidak dianjurkan .imp
modul dan panggilan ajaib__import__
.Cukup tulis perintah "sertakan":
@Dele:
Komentar @bfieck benar, untuk kompatibilitas python 2 dan 3, Anda memerlukan:
Python 2 dan 3: alternatif 1
Python 2 dan 3: alternatif 2
sumber
from module import *
? Juga, jika file yang Anda panggil memiliki kode di badannya, kode itu akan dijalankan, jika Anda melakukan ini.execfile
compile()
dari yang disebutkan. Jadi Python 2 dan 3 yang benar: alternatif 2 adalah:exec(compile(source=open('myfile.py').read(), filename='myfile.py', mode='exec'))
Jika Anda menggunakan:
maka itu akan memungkinkan Anda untuk menggunakan fungsi Math, tetapi Anda harus melakukan Math.Calculate, jadi itu jelas yang tidak Anda inginkan.
Jika Anda ingin mengimpor fungsi modul tanpa harus memberi awalan, Anda harus menamainya secara eksplisit, seperti:
Sekarang, Anda bisa mereferensikan Hitung, Tambah, dan Kurangi hanya dengan namanya. Jika Anda ingin mengimpor SEMUA fungsi dari Matematika, lakukan:
Namun, Anda harus sangat berhati-hati saat melakukan ini dengan modul yang isinya Anda tidak yakin. Jika Anda mengimpor dua modul yang berisi definisi untuk nama fungsi yang sama, satu fungsi akan menimpa yang lain, tanpa Anda yang lebih bijak.
sumber
Saya telah menemukan modul inspeksi python sangat berguna
Misalnya dengan teststuff.py
Dan dari skrip lain atau konsol python
Dan sekarang dostuff harus berada dalam cakupan lokal dan dostuff () akan mengembalikan konsol atau skrip _ name _ sedangkan menjalankan test.dostuff () akan mengembalikan nama modul python.
sumber