PEP 8 में, यह कहा गया है कि "कॉन्स्टेंट आमतौर पर मॉड्यूल स्तर पर परिभाषित होते हैं [...]"। यह मानक पुस्तकालय के लिए समझ में आता है, जहां स्थिरांक किसी विशेष वर्ग (उदा। zlib.MAX_WBITS
या re.UNICODE
) के बजाय पूरे मॉड्यूल से संबंधित होते हैं। मैं वर्तमान में एक मॉड्यूल लिख रहा हूं, हालांकि, जहां स्थिरांक सभी व्यक्तिगत कक्षाओं से संबंधित हैं।क्या मॉड्यूल स्तर पर कक्षा-विशिष्ट "स्थिरांक" अभी भी घोषित किया जाना चाहिए?
मॉड्यूल को पायथन प्रोग्राम को एप्लिकेशन-विशिष्ट धारावाहिक प्रारूप के साथ काम करने की अनुमति देने के लिए डिज़ाइन किया गया है जिसमें डेटा के ब्लॉक "भाग" में व्यवस्थित किए जाते हैं और उन हिस्सों को आगे "क्षेत्रों" में व्यवस्थित किया जाता है। भाग और क्षेत्रों के आयाम उपयोगी स्थिरांक हैं, और मैं वर्ग गुणों के रूप में ऐसा कर रहा था जब तक कि मैंने पीईपी 8 में उस रेखा में पीछा नहीं किया।
मैं उन्हें छोड़ने के इच्छुक हूं (पीईपी 8 कहता है, "बेवकूफ स्थिरता छोटे दिमाग की होबगोब्लिन है", लेकिन यह सुनिश्चित करना है कि मैं भी ऐसा करने से उपयोगकर्ताओं की अपेक्षाओं को बुरी तरह तोड़ने वाला नहीं हूं। (मॉड्यूल अभी तक नहीं जारी की गई है, इसलिए पश्च संगतता कोई मुद्दा नहीं है।)
संदर्भ के लिए, "पीईपी 8" शैली ...
CHUNK_SIZE_X = 16
CHUNK_SIZE_Z = 16
REGION_SIZE_X = 32
REGION_SIZE_Z = 32
def Chunk(object):
# magic happens here
def Region(object):
# magic happens here
... और मेरे वर्तमान, "वर्ग आधारित" शैली ...
def Chunk(object):
SIZE_X = 16
SIZE_Z = 16
# magic happens here
def Region(object):
SIZE_X = 32
SIZE_Z = 32
# magic happens here
जैसा कि मैंने कहा था, मैं पहले से ही पीईपी का उल्लंघन करने के इच्छुक था। मैं बस यह सुनिश्चित करना चाहता था कि ऐसा करने से दूसरों की अपेक्षाओं से मेल खाना पड़ेगा। ऐसा लगता है जैसे। :-) –
यह भी उल्लंघन नहीं है - एक कारण है कि पीईपी 8 को "आमतौर पर" और "आम तौर पर" जैसे चेतावनी शब्दों के साथ छिड़क दिया जाता है। – ncoghlan
@ एनकोग्लान: बिलकुल। यह "सर्वशक्तिमान" और "शास्त्र" जैसे शब्दों का उपयोग करने में मेरा मुद्दा था। –