Key facts
- Ang module ay kahit anong
.py file. Magagamit ito ng ibang file gamit ang import prices o from prices import with_tax.
- Ang code ng module ay tumatakbo nang isang beses, sa unang pag-import nito sa isang program.
- Bawat module ay may pangalan sa
__name__. Kapag direkta mong pinatakbo ang file, ang __name__ nito ay "__main__". Kapag ini-import ito, ang __name__ ay ang pangalan ng module. Kaya ang code sa loob ng if __name__ == "__main__": ay tumatakbo lang kapag ang mismong file ang pinatakbo mo, hindi kapag may nag-import nito.
- Ang package ay folder ng mga module. Inirerekomenda ng Python Packaging User Guide na maglagay ng
__init__.py file dito (puwedeng walang laman), para ma-import ang folder bilang regular na package.
- Ginagamit ng packaging tutorial ang src layout: ang package folder mo ay nasa loob ng folder na tinatawag na
src, katabi ng pyproject.toml, README.md, LICENSE at isang tests folder.
- Ang file na tinatawag na
__main__.py sa loob ng package ay nagpapahintulot sa mga tao na patakbuhin ang package gamit ang python3 -m packagename.
- Magandang gawi: ilagay ang logic (mga kalkulasyon, mga pagsusuri) sa isang module na walang pagpi-print at walang
input(), at ilagay ang interface (argparse, pagpi-print) sa ibang module. Mas madaling i-test ang logic na walang pagpi-print (Lesson 3).
Ang layout ng ordertools:
ordertools/
├── pyproject.toml (Lesson 6)
├── README.md
├── LICENSE
├── .gitignore (Lesson 4)
├── src/
│ └── ordertools/
│ ├── __init__.py (holds __version__ = "0.1.0")
│ ├── __main__.py (lets you run python3 -m ordertools)
│ ├── core.py (the logic)
│ └── cli.py (the command line)
└── tests/
├── test_core.py
└── test_cli.py
Halimbawa (tested): dalawang module
prices.py:
"""Helpers for prices."""
TAX_RATE = 0.10
def with_tax(price, rate=TAX_RATE):
return round(price * (1 + rate), 2)
print("prices.py: __name__ is", __name__)
if __name__ == "__main__":
print("Running prices.py directly:", with_tax(20))
shop.py:
import prices
from prices import with_tax
print(prices.TAX_RATE, with_tax(50), with_tax(50, rate=0.05))
Patakbuhin ang python3 prices.py: nagpi-print ito ng prices.py: __name__ is __main__ at Running prices.py directly: 22.0. Patakbuhin ang python3 shop.py: nagpi-print ito ng prices.py: __name__ is prices (isang beses lang, kahit dalawang beses ini-import ng shop.py ang prices) at 0.1 55.0 52.5. Hindi lumalabas ang linyang "Running directly", dahil in-import ang prices.py, hindi pinatakbo.
Try it now
Magdagdag ng pangatlong module na labels.py sa l1 folder na may function na money(x) na nagbabalik ng text tulad ng $12.50. I-import ito sa shop.py at i-print ang money(with_tax(50)). Magdagdag ng if __name__ == "__main__": block sa labels.py na nagpi-print ng mabilis na self-check, at patunayang hindi ito tumatakbo kapag ini-import ito ng shop.py.
ClaudeStuck? Copy a ready-made prompt for Claude
Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.
For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.
I'm learning "Mga Python Project: testing, packaging at version control" on The Future Market. Lesson 1: "Mga module, package at layout ng project".
What the lesson teaches:
- Ang module ay kahit anong .py file. Magagamit ito ng ibang file gamit ang import prices o from prices import with_tax.
- Ang code ng module ay tumatakbo nang isang beses, sa unang pag-import nito sa isang program.
- Bawat module ay may pangalan sa __name__. Kapag direkta mong pinatakbo ang file, ang __name__ nito ay "__main__". Kapag ini-import ito, ang __name__ ay ang pangalan ng module. Kaya ang code sa loob ng if __name__ == "__main__": ay tumatakbo lang kapag ang mismong file ang pinatakbo mo, hindi kapag may nag-import nito.
- Ang package ay folder ng mga module. Inirerekomenda ng Python Packaging User Guide na maglagay ng __init__.py file dito (puwedeng walang laman), para ma-import ang folder bilang regular na package.
- Ginagamit ng packaging tutorial ang src layout: ang package folder mo ay nasa loob ng folder na tinatawag na src, katabi ng pyproject.toml, README.md, LICENSE at isang tests folder.
- Ang file na tinatawag na __main__.py sa loob ng package ay nagpapahintulot sa mga tao na patakbuhin ang package gamit ang python3 -m packagename.
- Magandang gawi: ilagay ang logic (mga kalkulasyon, mga pagsusuri) sa isang module na walang pagpi-print at walang input(), at ilagay ang interface (argparse, pagpi-print) sa ibang module. Mas madaling i-test ang logic na walang pagpi-print (Lesson 3).
The exercise I'm working on:
Magdagdag ng pangatlong module na labels.py sa l1 folder na may function na money(x) na nagbabalik ng text tulad ng $12.50. I-import ito sa shop.py at i-print ang money(with_tax(50)). Magdagdag ng if __name__ == "__main__": block sa labels.py na nagpi-print ng mabilis na self-check, at patunayang hindi ito tumatakbo kapag ini-import ito ng shop.py.
I'm stuck. Please:
1. Explain the main idea in plain, simple words with one everyday example.
2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step.
3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Mga module, package at layout ng project" from the course "Mga Python Project: testing, packaging at version control".
Here's what the lesson says:
Ang malaking program sa isang file ay parang kusinang nasa iisang drawer ang lahat ng kaldero, kutsara at plato. Ang mga module ay magkakahiwalay na drawer, bawat isa ay may isang klase ng gamit. Ang package ay aparador na puno ng mga drawer na may label, at ang layout ng project ay plano ng buong kusina, para makita ng kahit sino ang kahit ano.
The activity:
Magdagdag ng pangatlong module na labels.py sa l1 folder na may function na money(x) na nagbabalik ng text tulad ng $12.50. I-import ito sa shop.py at i-print ang money(with_tax(50)). Magdagdag ng if __name__ == "__main__": block sa labels.py na nagpi-print ng mabilis na self-check, at patunayang hindi ito tumatakbo kapag ini-import ito ng shop.py.
Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.