ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪೈಥಾನ್ ಮಾಡ್ಯೂಲ್ಸ್ ಮತ್ತು ಪ್ಯಾಕೇಜಸ್: ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು

1. ಪೈಥಾನ್‌ನಲ್ಲಿ ಮಾಡ್ಯೂಲ್ (Module) ಎಂದರೇನು?

ಉತ್ತರ: ಮಾಡ್ಯೂಲ್ ಎನ್ನುವುದು ಪೈಥಾನ್ ಡೆಫಿನಿಷನ್‌ಗಳು ಮತ್ತು ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಒಂದು ಫೈಲ್. ಫೈಲ್‌ನ ಹೆಸರು ಮಾಡ್ಯೂಲ್‌ನ ಹೆಸರಾಗಿರುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, my_module.py). ಮಾಡ್ಯೂಲ್‌ಗಳು ಕೋಡ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಮತ್ತು ಪುನಃ ಬಳಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.

ಉದಾಹರಣೆ: math ಒಂದು ಬಿಲ್ಟ್-ಇನ್ ಮಾಡ್ಯೂಲ್, ಇದರಲ್ಲಿ ಗಣಿತಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಫಂಕ್ಷನ್‌ಗಳಿವೆ.

import math

print(math.pi)
print(math.sqrt(16))

2. ಪ್ಯಾಕೇಜ್ (Package) ಎಂದರೇನು?

ಉತ್ತರ: ಪ್ಯಾಕೇಜ್ ಎನ್ನುವುದು ಸಂಬಂಧಿತ ಮಾಡ್ಯೂಲ್‌ಗಳ ಒಂದು ಸಂಗ್ರಹ. ತಾಂತ್ರಿಕವಾಗಿ, ಇದು __init__.py ಫೈಲ್ ಅನ್ನು ಹೊಂದಿರುವ ಒಂದು ಡೈರೆಕ್ಟರಿ. ಪ್ಯಾಕೇಜ್‌ಗಳು ದೊಡ್ಡ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕ್ರಮಬದ್ಧವಾಗಿ ಸಂಘಟಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.

ಉದಾಹರಣೆ: numpy ಮತ್ತು pandas ಡೇಟಾ ಸೈನ್ಸ್‌ನಲ್ಲಿ ಬಳಸುವ ಜನಪ್ರಿಯ ಪ್ಯಾಕೇಜ್‌ಗಳು.

my_package/
|-- __init__.py
|-- module1.py
|-- module2.py

3. import ಮತ್ತು from ... import ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?

ಉತ್ತರ:

  • import <module_name>:

    • ಸಂಪೂರ್ಣ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ.
    • ಮಾಡ್ಯೂಲ್‌ನಲ್ಲಿರುವ ಫಂಕ್ಷನ್ ಅಥವಾ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸಲು, ನೀವು module_name.item_name ಎಂದು ಬಳಸಬೇಕು.
    • ಉದಾಹರಣೆ: import math; print(math.pi)
  • from <module_name> import <item_name>:

    • ಮಾಡ್ಯೂಲ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟ ಫಂಕ್ಷನ್, ಕ್ಲಾಸ್, ಅಥವಾ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮಾತ್ರ ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ.
    • ಇಂಪೋರ್ಟ್ ಮಾಡಿದ ಐಟಂ ಅನ್ನು ನೇರವಾಗಿ ಅದರ ಹೆಸರಿನಿಂದ ಬಳಸಬಹುದು.
    • ಉದಾಹರಣೆ: from math import pi; print(pi)

4. __init__.py ಫೈಲ್‌ನ ಉದ್ದೇಶವೇನು?

ಉತ್ತರ: __init__.py ಫೈಲ್ ಒಂದು ಡೈರೆಕ್ಟರಿಯನ್ನು ಪೈಥಾನ್ ಪ್ಯಾಕೇಜ್ ಎಂದು ಗುರುತಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಈ ಫೈಲ್ ಖಾಲಿಯಾಗಿರಬಹುದು, ಅಥವಾ ಪ್ಯಾಕೇಜ್ ಇಂಪೋರ್ಟ್ ಆದಾಗ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗಬೇಕಾದ ಇನಿಶಿಯಲೈಸೇಶನ್ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರಬಹುದು.

ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೇಜ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಸುಲಭವಾಗಿ ಇಂಪೋರ್ಟ್ ಮಾಡಲು ಇದನ್ನು ಬಳಸಬಹುದು.

# in my_package/__init__.py
from .module1 import function1

ಈಗ, from my_package import function1 ಎಂದು ನೇರವಾಗಿ ಇಂಪೋರ್ಟ್ ಮಾಡಬಹುದು.

5. if __name__ == "__main__": ಬ್ಲಾಕ್ ಅನ್ನು ಏಕೆ ಬಳಸಲಾಗುತ್ತದೆ?

ಉತ್ತರ: ಈ ಬ್ಲಾಕ್‌ನೊಳಗಿನ ಕೋಡ್, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನೇರವಾಗಿ ರನ್ ಮಾಡಿದಾಗ ಮಾತ್ರ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬೇರೆ ಮಾಡ್ಯೂಲ್‌ನಿಂದ ಇಂಪೋರ್ಟ್ ಮಾಡಿದಾಗ ಈ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುವುದಿಲ್ಲ.

ಉಪಯೋಗಗಳು:

  • ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿದಾಗ ಅನಗತ್ಯ ಕೋಡ್ (ಉದಾ: ಟೆಸ್ಟಿಂಗ್ ಕೋಡ್) ರನ್ ಆಗುವುದನ್ನು ತಡೆಯಲು.
  • ಒಂದು ಫೈಲ್ ಅನ್ನು ಮಾಡ್ಯೂಲ್ ಆಗಿಯೂ ಮತ್ತು ಸ್ವತಂತ್ರ ಸ್ಕ್ರಿಪ್ಟ್ ಆಗಿಯೂ ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಉದಾಹರಣೆ:

# my_module.py

def my_function():
    print("This is my function.")


if __name__ == "__main__":
    # ಈ ಕೋಡ್ 'python my_module.py' ರನ್ ಮಾಡಿದಾಗ ಮಾತ್ರ ಚಲಿಸುತ್ತದೆ
    print("Script is running directly.")
    my_function()