2011-02-23 7 views
5

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 

उत्तर

7

स्पष्ट रूप से, कक्षा-आधारित स्थिरांक कक्षा में हैं। अपने दूसरे उदाहरण के साथ चिपकाओ। याद रखें पीईपी 8 सर्वशक्तिमान से नहीं सौंपा गया है। यह सिर्फ अच्छे विचार हैं: परंपरा, कारण और अनुभव पवित्रशास्त्र के अर्थ को गुस्सा कर सकते हैं।

Hungrarian_prefix_notation की आवश्यकता नहीं है। यही कारण है कि आपके पास कक्षाएं हैं।

+0

जैसा कि मैंने कहा था, मैं पहले से ही पीईपी का उल्लंघन करने के इच्छुक था। मैं बस यह सुनिश्चित करना चाहता था कि ऐसा करने से दूसरों की अपेक्षाओं से मेल खाना पड़ेगा। ऐसा लगता है जैसे। :-) –

+0

यह भी उल्लंघन नहीं है - एक कारण है कि पीईपी 8 को "आमतौर पर" और "आम तौर पर" जैसे चेतावनी शब्दों के साथ छिड़क दिया जाता है। – ncoghlan

+0

@ एनकोग्लान: बिलकुल। यह "सर्वशक्तिमान" और "शास्त्र" जैसे शब्दों का उपयोग करने में मेरा मुद्दा था। –

0

निरंतर उपभोग कौन करता है? आप कहते हैं, "मैं वर्तमान में एक मॉड्यूल लिख रहा हूं, हालांकि, जहां स्थिरांक सभी अलग-अलग वर्गों से संबंधित हैं।" तो कक्षा में निरंतर रखो।

+0

मॉड्यूल के भीतर स्थिरांक का उपभोग किया जा रहा है और कम से कम कभी-कभी मॉड्यूल के उपयोगकर्ताओं के लिए उपयोगी माना जाता है। –

+0

@बेन खाली: आपके विवरण के आधार पर मैं उन्हें मॉड्यूल स्तर पर रखूंगा, लेकिन इसके बारे में मुझे कोई मजबूत भावना नहीं है। मुझे नहीं लगता कि यह सही और गलत का सवाल है। –

संबंधित मुद्दे