स्टैक ओवरफ्लो पर पहली बार उपयोगकर्ता और मैं यहाँ होने के लिए उत्साहित हूं
परिचय: मैंने हाल ही में पायथन प्रोग्रामिंग की दुनिया में जादुई रोमांच शुरू किया - मुझे यह पसंद है। अब सी से मेरे अजीब संक्रमण में सब कुछ आसानी से चला गया है, लेकिन मुझे कुछ बनाने में परेशानी हो रही है जो एक हेडर फ़ाइल (.h) का पर्याय बन जाएगा।
संकट: मेरे पास मध्यम आकार के शब्दकोष और सूचियाँ (लगभग 1,000 तत्व), लम्बी दुश्मनी और "# डेफ़िन" (अच्छी तरह से वास्तव में नहीं) हैं, लेकिन मैं उन सभी को व्यवस्थित करने के लिए एक CLEAN तरीका खोज सकता हूँ। C में, मैं उन सभी को फेंक दूंगा। एक हेडर फ़ाइल और इसके बारे में फिर कभी नहीं सोचें, हालांकि, पायथन में है कि "संभव नहीं है या इसलिए मुझे लगता है।
मौजूदा समय में समाधान: मैं सभी मॉड्यूल या फ़ंक्शन के शीर्ष पर सभी CONSTANT चर को प्रारंभ कर रहा हूं (यदि कई फ़ंक्शन को इसकी आवश्यकता है तो मॉड्यूल)।
निष्कर्ष: मैं हमेशा आभारी रहूंगा यदि कोई व्यक्ति निरंतर चर को व्यवस्थित करने के तरीके के साथ आया है।
आपको बहुत - बहुत धन्यवाद!
उत्तर:
उत्तर № 1 के लिए 20अपने स्थिरांक को अपने स्वयं के मॉड्यूल में रखें:
# constants.py
RED = 1
BLUE = 2
GREEN = 3
फिर उस मॉड्यूल को आयात करें और स्थिरांक का उपयोग करें:
import constants
print "RED is", constants.RED
स्थिरांक आप की तरह किसी भी मूल्य हो सकता है, मैं यहाँ पूर्णांक दिखाया है, लेकिन सूचियों और dicts बस एक ही काम करेंगे
जवाब के लिए 9 № 2
आमतौर पर मैं ऐसा करता हूं:
फ़ाइल: constants.py
CONSTANT1 = "asd"
CONSTANT_FOO = 123
CONSTANT_BAR = [1, 2, 5]
फ़ाइल: your_script.py
from constants import CONSTANT1, CONSTANT_FOO
# or if you want *all* of them
# from constants import *
...
अब आपके स्थिरांक एक फ़ाइल में हैं और आप उन्हें अच्छी तरह से आयात और उपयोग कर सकते हैं।
जवाब के लिए 3 № 3
एक अलग फाइल बनाएं constants.py
, और वहाँ सभी विश्व स्तर पर प्रासंगिक स्थिरांक डाल दिया। तब आप कर सकते हो import constants
के रूप में उन्हें संदर्भित करने के लिए constants.SPAM
या (संदिग्ध) from constants import *
बस के रूप में उन्हें संदर्भित करने के लिए SPAM
या EGGS
.
जब हम "यहाँ फिर से, ध्यान दें कि पायथन doesn" t समर्थन करते हैं लगातार स्थिरांक। कन्वेंशन सिर्फ उन्हें नाम देने के लिए है ALL_CAPS
और उनसे वादा नहीं करना चाहिए।