https://docs.python.org/2/library/2to3.html#2to3fixer-import ध्यान दें कि:पायथन में भाई आयात क्या है?
भाई आयात का पता लगाता है और उन्हें रिश्तेदार आयात के लिए बदल देता है।
https://docs.python.org/2/library/2to3.html#2to3fixer-import ध्यान दें कि:पायथन में भाई आयात क्या है?
भाई आयात का पता लगाता है और उन्हें रिश्तेदार आयात के लिए बदल देता है।
:
"""Fixer for import statements. If spam is being imported from the local directory, this import: from spam import eggs Becomes: from .spam import eggs And this import: import spam Becomes: from . import spam """
तो भाई "एक ही स्तर पर" के लिए खड़े हैं।
यह एक ही मूल निर्देशिका के अंतर्गत मॉड्यूल आयात करने के लिए संदर्भित करता है।
इस निर्देशिका संरचना में:
parent
module1
__init__.py
module1.py
module2
__init__.py
module2.py
उदाहरण के लिए एक भाई आयात module2.py
से module1
आयात करने का उल्लेख होगा।
"""Fixer for import statements.
If spam is being imported from the local directory, this import:
from spam import eggs
Becomes:
from .spam import eggs
And this import:
import spam
Becomes:
from . import spam
"""
यह स्थानीय
-- local path
-- a.py
-- b.py
-- __init__.py
RefactoringTool: Refactored a.py
--- a.py (original)
+++ a.py (refactored)
@@ -1,2 +1,2 @@
-import b
-print 'xxx'
+from . import b
+print('xxx')
RefactoringTool: Files that need to be modified:
RefactoringTool: a.py
विस्तार से जब आयात स्थानीय मॉड्यूल बदल जाएगा और एक __init__.py
देखें: probably_a_local_import
सहोदर आयातनहीं एक टर्मिनस technicus है। बेहतर शब्द सापेक्ष आयात है।
+---+--------------------------+-------------------------+
| | In the File system | In the Python import |
+---+--------------------------+-------------------------+
| 1 | /doc/excel | doc.excel | <--- absolute
| 2 | excel (we are in /doc) | excel (we are in doc) | <--- ???
| 3 | ./excel (we are in /doc) | .excel (we are in doc) | <--- relative
+---+--------------------------+-------------------------+
और यहाँ पर्याप्त अंतर है:
यह फाइल सिस्टम में लगभग एक ही रूप में रिश्तेदार पथ का मतलब है। फाइल सिस्टम में हम हमेशा पूर्ण पथ को पहचानते हैं क्योंकि यह /
(या कुछ समान) से शुरू होता है, इसलिए पिछली तालिका में 2 और 3 के मामलों में समान अर्थ है।
अजगर में, मामला 2 का मतलब है: वर्तमान मॉड्यूल (doc
में यानी), में excel
के लिए खोज लेकिन अगर यह नहीं पाया जाता है, शीर्ष स्तर के मॉड्यूल के रूप में यह विचार करें। और यह समस्याएं पैदा कर सकता है।
केस 3 स्पष्ट है - प्रमुख .
मतलब है रिश्तेदार पथ (मैं ई मॉड्यूल doc.excel
।।)।
मुझे खुशी है कि 2to3.py इस भाई आयात को ठीक कर सकता है जो वास्तव में संबंधित सापेक्ष आयात है। – acgtyrant