from...import ಸ್ಟೇಟ್ಮೆಂಟ್
import ಸ್ಟೇಟ್ಮೆಂಟ್ ಸಂಪೂರ್ಣ ಮೊಡ್ಯೂಲ್ ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿದರೆ, from...import ಸ್ಟೇಟ್ಮೆಂಟ್ ಒಂದು ಮೊಡ್ಯೂಲ್ನಿಂದ ನಿರ್ದಿಷ್ಟ ಫಂಕ್ಷನ್ಗಳು, ಕ್ಲಾಸ್ಗಳು, ಅಥವಾ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ನೇರವಾಗಿ ಪ್ರಸ್ತುತ ನೇಮ್ಸ್ಪೇಸ್ಗೆ ಇಂಪೋರ್ಟ್ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಇದರಿಂದ, ನಾವು ಮೊಡ್ಯೂಲ್ನ ಹೆಸರನ್ನು ಪದೇ ಪದೇ ಬಳಸುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ (module_name.item_name), ಇದು ಕೋಡ್ ಅನ್ನು ಚಿಕ್ಕದಾಗಿಸುತ್ತದೆ.
1. ನಿರ್ದಿಷ್ಟ ಐಟಂಗಳನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡುವುದು
from module_name import item1, item2 ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ, ನಾವು ಬೇಕಾದ ಐಟಂಗಳನ್ನು ಮಾತ್ರ ಇಂಪೋರ್ಟ್ ಮಾಡಬಹುದು.
import ಬಳಸಿದಾಗ:
from...import ಬಳಸಿದಾಗ (ಉತ್ತಮ ವಿಧಾನ):
2. ಅಲಿಯಾಸ್ (Alias) ಬಳಸಿ ಇಂಪೋರ್ಟ್ ಮಾಡುವುದು
ಇಂಪೋರ್ಟ್ ಮಾಡುವ ಐಟಂಗೆ as ಕೀವರ್ಡ್ ಬಳಸಿ ಹೊಸ ಹೆಸರನ್ನು (ಅಲಿಯಾಸ್) ನೀಡಬಹುದು. ಹೆಸರುಗಳ ಸಂಘರ್ಷವನ್ನು (naming conflicts) ತಪ್ಪಿಸಲು ಅಥವಾ ಉದ್ದವಾದ ಹೆಸರುಗಳನ್ನು ಚಿಕ್ಕದಾಗಿಸಲು ಇದು ಉಪಯುಕ್ತ.
from datetime import datetime as dt
# 'datetime' ಬದಲಿಗೆ 'dt' ಬಳಸುವುದು
current_time = dt.now()
print(current_time)
3. ಎಲ್ಲಾ ಐಟಂಗಳನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡುವುದು (*)
from module_name import * ಸಿಂಟ್ಯಾಕ್ಸ್ ಒಂದು ಮೊಡ್ಯೂಲ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಸಾರ್ವಜನಿಕ (public) ಐಟಂಗಳನ್ನು ಪ್ರಸ್ತುತ ನೇಮ್ಸ್ಪೇಸ್ಗೆ ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ.
from math import *
# ಈಗ math ಮೊಡ್ಯೂಲ್ನ ಎಲ್ಲಾ ಫಂಕ್ಷನ್ಗಳನ್ನು ನೇರವಾಗಿ ಬಳಸಬಹುದು
print(sqrt(49))
print(pi)
print(cos(0))
ಎಚ್ಚರಿಕೆ: import * ಅನ್ನು ಬಳಸುವುದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾಗುವುದಿಲ್ಲ.
- ನೇಮ್ಸ್ಪೇಸ್ ಮಾಲಿನ್ಯ (Namespace Pollution): ಇದು ಯಾವ ಹೆಸರುಗಳು ಎಲ್ಲಿಂದ ಬಂದಿವೆ ಎಂಬುದನ್ನು ತಿಳಿಯಲು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.
- ಹೆಸರುಗಳ ಸಂಘರ್ಷ (Naming Conflicts): ನೀವು ಡಿಫೈನ್ ಮಾಡಿದ ಫಂಕ್ಷನ್ ಅಥವಾ ವೇರಿಯೇಬಲ್ನ ಹೆಸರು, ಇಂಪೋರ್ಟ್ ಮಾಡಿದ ಮೊಡ್ಯೂಲ್ನಲ್ಲಿರುವ ಹೆಸರಿನೊಂದಿಗೆ ಸಂಘರ್ಷಗೊಳ್ಳಬಹುದು.
- ಓದಬಲ್ಲದು (Readability): ಕೋಡ್ ಅನ್ನು ಓದುವವರಿಗೆ ಯಾವ ಫಂಕ್ಷನ್ಗಳು ಎಲ್ಲಿಂದ ಬಂದಿವೆ ಎಂದು ತಿಳಿಯುವುದು ಕಷ್ಟ.
import vs. from...import
| ಗುಣಲಕ್ಷಣ | import module |
from module import item |
|---|---|---|
| ಬಳಕೆ | module.item |
item |
| ನೇಮ್ಸ್ಪೇಸ್ | ಮೊಡ್ಯೂಲ್ ಹೆಸರು ಮಾತ್ರ ನೇಮ್ಸ್ಪೇಸ್ನಲ್ಲಿರುತ್ತದೆ. | ಇಂಪೋರ್ಟ್ ಮಾಡಿದ ಐಟಂಗಳು ನೇರವಾಗಿ ನೇಮ್ಸ್ಪೇಸ್ನಲ್ಲಿರುತ್ತವೆ. |
| ಸ್ಪಷ್ಟತೆ | ಹೆಚ್ಚು ಸ್ಪಷ್ಟ (ಯಾವ ಐಟಂ ಎಲ್ಲಿಂದ ಬಂದಿದೆ ಎಂದು ತಿಳಿಯುತ್ತದೆ). | ಕಡಿಮೆ ಸ್ಪಷ್ಟ (ಹೆಚ್ಚು ಐಟಂಗಳನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿದಾಗ). |
| ಶಿಫಾರಸು | ಸಾಮಾನ್ಯವಾಗಿ ಸುರಕ್ಷಿತ ಮತ್ತು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. | ಕಡಿಮೆ ಐಟಂಗಳನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡುವಾಗ ಅಥವಾ ಕೋಡ್ ಅನ್ನು ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಲು ಉಪಯುಕ್ತ. |
ನಿಮ್ಮ ಅಗತ್ಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಸರಿಯಾದ ಇಂಪೋರ್ಟ್ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿಕೊಳ್ಳುವುದು ಉತ್ತಮ ಕೋಡಿಂಗ್ ಅಭ್ಯಾಸವಾಗಿದೆ.