/ / पायथन - निरंतर सूचियों या शब्दकोश को परिभाषित करने के लिए सबसे अच्छा / सबसे स्वच्छ तरीका - अजगर, सी, हेडर, कॉन्स्टेंट, संगठित

पायथन - निरंतर सूचियों या शब्दकोशों को परिभाषित करने का सबसे अच्छा / साफ तरीका - पायथन, सी, हेडर, स्थिरांक, संगठित

स्टैक ओवरफ्लो पर पहली बार उपयोगकर्ता और मैं यहाँ होने के लिए उत्साहित हूं

परिचय: मैंने हाल ही में पायथन प्रोग्रामिंग की दुनिया में जादुई रोमांच शुरू किया - मुझे यह पसंद है। अब सी से मेरे अजीब संक्रमण में सब कुछ आसानी से चला गया है, लेकिन मुझे कुछ बनाने में परेशानी हो रही है जो एक हेडर फ़ाइल (.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 और उनसे वादा नहीं करना चाहिए।