मेरे पास एक प्रश्न है जो मूलभूत प्रतीत होता है लेकिन मुझे कहीं भी इस पर कोई मदद नहीं मिल रही है।मॉड्यूल और वैश्विक चरों में पाइथन आयात
file_a.py >>
from xyz import XYZ
class A:
.
.
.
file_b.py >>
import file_a
from file_a import A
class B(A):
def __init__(self):
A.__init__(self)
def someMethod(self):
XYZ.doSomething()
XYZ.doSomething() कह NameError विफल रहता है: नाम 'XYZ' की तरह 'आयात sys' file_a से किया यहां तक कि मानक के आयात से परिभाषित नहीं है यह file_b में प्रयोग करने योग्य रेंडर करने के लिए प्रतीत नहीं होता। मैंने माना कि काम करना चाहिए। क्या मेरी समझ गलत है? यदि हां, तो फाइलों में आम आयात और वैश्विक चर रखने का कोई तरीका है? (यदि यह कोई मदद नहीं है, तो मैं एक सी ++ और जावा प्रोग्रामर रहा हूं और अब पाइथन का उपयोग शुरू कर रहा हूं।)
वैसे यह मेरा सवाल है। मैं file_b जैसी कई फाइलों में आयात के एक सेट को दोहराने से बचना चाहता हूं। मुझे पता है कि XYZ और sys को file_b कार्यों में आयात करना। – ksrini
@ksrini आपको यह नहीं चाहिए। मॉड्यूल का उपयोग करने वाली सभी चीज़ों को स्पष्ट रूप से आयात करना अच्छा होता है। यह अच्छी तरह से एक ही स्थान पर सभी निर्भरताओं को सूचीबद्ध करता है। पीईपी 20 देखें - निहित से स्पष्ट स्पष्ट है। – yak
धन्यवाद याक, यह दिलचस्प और अंतर्दृष्टिपूर्ण था! – ksrini