जवाबों:
from file1 import *
फ़ाइल 1 में सभी ऑब्जेक्ट्स और विधियों को आयात करेगा
ImportError: No module named file1
file1
अंदर आयात करें file2
:
File1 के सभी वेरिएबल्स को फाइल 2 के नेमस्पेस में बाढ़ के बिना आयात करने के लिए उपयोग करें:
import file1
#now use file1.x1, file2.x2, ... to access those variables
फ़ाइल 1 से फ़ाइल 2 के नाम स्थान (अनुशंसित नहीं) के लिए सभी चर आयात करने के लिए:
from file1 import *
#now use x1, x2..
से डॉक्स :
हालांकि यह
from module import *
मॉड्यूल स्तर पर उपयोग करने के लिए मान्य है, यह आमतौर पर एक बुरा विचार है। एक के लिए, यह अन्यथा एक महत्वपूर्ण संपत्ति पायथन खो देता है - आप जान सकते हैं कि प्रत्येक टॉपवेल नाम को आपके पसंदीदा संपादक में एक सरल "खोज" फ़ंक्शन द्वारा कैसे परिभाषित किया गया है। आप भविष्य में परेशानी के लिए खुद को भी खोलते हैं, अगर कुछ मॉड्यूल अतिरिक्त कार्यों या कक्षाओं में बढ़ता है।
import file1
तब का उपयोग करें ।
file1.varX
प्रत्येक फ़ाइल के लिए तैयार करना होगा ।
स्पष्ट रूप से X1 और x2 आयात करने के लिए सर्वश्रेष्ठ :
from file1 import x1, x2
यह आपको file1
काम करते समय से चर और कार्यों के साथ अनावश्यक नाम स्थान संघर्ष से बचने की अनुमति देता है file2
।
लेकिन अगर आप वास्तव में चाहते हैं, तो आप सभी चर आयात कर सकते हैं :
from file1 import *
वास्तव में यह वास्तव में चर के साथ आयात करने के लिए समान नहीं है:
from file1 import x1
print(x1)
तथा
import file1
print(file1.x1)
आयात समय पर X1 और file1.x1 का समान मूल्य है, वे समान चर नहीं हैं। उदाहरण के लिए, file1 में एक फ़ंक्शन को कॉल करें जो X1 को संशोधित करता है और फिर मुख्य फ़ाइल से चर को प्रिंट करने का प्रयास करें: आप संशोधित मूल्य नहीं देखेंगे।
मार्क की प्रतिक्रिया सही है। दरअसल, आप चर के लिए मेमोरी एड्रेस प्रिंट print(hex(id(libvar))
कर सकते हैं और आप देख सकते हैं कि पते अलग हैं।
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
में Python
आप के रूप में यदि वे जैसे अन्य फ़ाइलों की सामग्री का उपयोग कर सकते
एक पुस्तकालय के कुछ प्रकार के होते हैं, जावा या किसी OOP आधार भाषाओं की तरह अन्य भाषाओं की तुलना में, यह वास्तव में शांत है;
यह फ़ाइल की सामग्री तक पहुंच बनाता है या इसे संसाधित करने या इसके साथ कुछ भी करने के लिए आयात करता है; और यही मुख्य कारण है कि Python
डेटा साइंस और मशीन लर्निंग आदि के लिए अत्यधिक पसंदीदा भाषा;
और यह तस्वीर है project structure
मैं कहाँ से चर पहुँचा रहा हूँ .env file
जहाँ API links
और गुप्त कुंजी रहते हैं।
सामान्य संरचना:
from <File-Name> import *