मैं आयात करने के लिए एक मॉड्यूल प्राप्त करने की कोशिश कर रहा हूं, लेकिन केवल तभी जब किसी विशिष्ट वर्ग की वस्तु को बुलाया जाता है। उदाहरण के लिए:पायथन एक कक्षा में केवल एक मॉड्यूल आयात करें
class One(object):
try:
import OneHelper
except ImportError:
pass
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
# this function does
OneHelper.blah()
यह एक NameError: global name 'OneHelper' is not defined
जब One.blah()
समारोह कहा जाता है का कारण बनता है। अब तक एकमात्र चीज जो मैंने पाया है वह काम करता है जो मॉड्यूल को वास्तविक कार्यों में आयात कर रहा है जो इसका उपयोग करते हैं। तो:
class One(object):
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
try:
import OneHelper
except ImportError:
pass
# this function does
OneHelper.blah()
लेकिन मैं प्रत्येक कार्य मैं में उपयोग करना चाहते हैं, मैं इसे पूरी कक्षा के लिए उपलब्ध रहना चाहता हूँ में मॉड्यूल आयात करने के लिए नहीं करना चाहते हैं, लेकिन केवल यदि का एक उदाहरण वह वर्ग तत्काल है। क्षमा करें अगर मैं पर्याप्त स्पष्ट नहीं हो रहा हूं ...
आप एक ऐसा फ़ंक्शन बनाने का प्रयास कर सकते हैं जो क्लास को तत्काल आयात करता है और फिर फ़ंक्शन को अन्य कार्यों के भीतर से कॉल करता है। शायद छोटे कामकाज। –