निर्दिष्ट करने पर विचार कर रहा था कि क्या किसी को भी पाइथन के ग्लोबल बनाम मॉड्यूल को संदर्भित करने के बारे में कोई विचार था। जबकि अतीत में मैं इस्तेमाल किया वैश्विक जब जरूरत, मैंने पाया यह कुछ हद तक स्पष्ट दूसरी विधि करने के लिए (और हाल ही में इस वाक्य रचना के पक्ष में करने की प्रवृत्ति है):पाइथन का ग्लोबल बनाम मॉड्यूल
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
जाहिर है उन दोनों को अच्छा काम है, लेकिन अगर किसी को भी इसमें कोई मजबूत राय है (अधिक पाइथोनिक, प्रदर्शन आदि क्या है), मुझे उन्हें सुनना अच्छा लगेगा।
बीटीडब्ल्यू मैं इन स्थितियों में से किसी एक का उपयोग कर समाप्त करता हूं जहां मॉड्यूल स्वाभाविक रूप से सभी विधियों और विशेषताओं को एक वर्ग के रूप में परिभाषित करता है, और संदर्भ incrementmodule.IncrementClass.counter मैं केवल incrementmodule.counter का उपयोग कर सकता हूं।
दूसरा एक स्पष्ट कैसे है? – delnan
मुझे लगता है कि यह इतना स्पष्ट नहीं है, लेकिन मैं इसे पसंद करता हूं क्योंकि यह तुरंत स्पष्ट है कि एक स्थानीय स्तर की बजाय मॉड्यूल-स्तरीय परिवर्तनीय संशोधित किया जा रहा है (यह देखने के लिए आपको वापस जांचने से रोकता है कि चर ग्लोबल्स घोषणा में है या नहीं शीर्ष पर) – gnr
यदि 'वैश्विक' और असाइनमेंट बहुत दूर हैं, तो आपको उससे अधिक स्पष्टता की समस्याएं मिली हैं;) – delnan