मॉड्यूल functools
reduce
को संदर्भित करता है जिसे _functools
में परिभाषित किया गया है, तो परिपत्र निर्भरता (functools -> _functools -> functools) के साथ काम करना। इस बीच _functools
partial
जिसमें functools
नामस्थान
मैं इस समस्या में चल रहा हूँ जब बंदर-पैच उद्देश्यों के लिए नाम स्थान की प्रतिलिपि तैयार करने की कोशिश कर रहा परिभाषित किया गया है को दर्शाता है। लेकिन मेरे मामले में, मुझे पुरानी और बंदर-पैच की कार्यक्षमता दोनों की आवश्यकता है, इसलिए एक प्रतिलिपि की आवश्यकता है। कोई सुझाव इस तरह परिपत्र निर्भरताओं के लिए एक अच्छा तरीका क्या है?
अनुरोध
def _get_dependent_modules(m):
"""Return set of all modules defining symbols in given module."""
modules = set()
for symbol_name, symbol in m.__dict__.items():
if hasattr(symbol, '__module__'):
if symbol.__module__ in sys.modules:
print "Symbol %s, defined in %s" % (symbol_name, symbol.__module__)
modules.add(sys.modules[symbol.__module__])
else:
print "Cant find module for %s" %(symbol)
return modules
_get_dependent_modules(functools)
Symbol wraps, defined in functools
Symbol partial, defined in functools
Symbol update_wrapper, defined in functools
Symbol total_ordering, defined in functools
Symbol reduce, defined in _functools
Symbol cmp_to_key, defined in functools
_get_dependent_modules(sys.modules["_functools"])
Symbol partial, defined in functools
Symbol reduce, defined in _functools
ऐसा लगता है 'को कम दोनों में है। आप 'sys.modules [" functools "] के साथ' functools' में 'low'' देख सकते हैं .__ dict __ ["low"] ' –
कुछ स्रोत कोड –
के साथ अपडेट किया गया है, इसलिए यदि मैं गतिशील रूप से मॉड्यूल को फिर से लिख रहा हूं, तो मुझे किसको लिखना चाहिए प्रथम? चूंकि '_functools' में कम परिभाषित किया गया है, इसलिए मुझे' _functools' में सभी प्रतीकों की प्रतिलिपि बनाने और नए मॉड्यूल को इंगित करने के लिए उन प्रतीकों के सभी '__globals__' को अपडेट करने की आवश्यकता है। लेकिन चूंकि '_unctools' में 'functools' में परिभाषित' आंशिक 'का संदर्भ है, इसलिए मुझे पहले' functools' को फिर से लिखना चाहिए। लेकिन यह एक परिपत्र निर्भरता है –