I have a small app like this:
pizza-shop$ tree .
.
└── pizzapy
├── __init__.py
├── menu.py
└── pizza.py
1 directory, 3 files
# menu.py
from typing import List
from pizza import Pizza
MENU: List[Pizza] = [
Pizza('Margherita', 30, 10.0),
Pizza('Carbonara', 45, 14.99),
Pizza('Marinara', 35, 16.99),
]
if __name__ == '__main__':
print(MENU)
# pizza.py
import math
class Pizza:
name: str = ''
size: int = 0
price: float = 0
def __init__(self, name: str, size: int, price: float) -> None:
self.name = name
self.size = size
self.price = price
def area(self) -> float:
return math.pi * math.pow(self.size / 2, 2)
def awesomeness(self) -> int:
if self.name == 'Carbonara':
return 9000
return self.size // int(self.price) * 100
print('pizza.py module name is %s' % __name__)
if __name__ == '__main__':
print('Carbonara is the most awesome pizza.')
Now when I call the menu.py from command like it works as expected.
pizza-shop$ python3 pizzapy/menu.py
pizza.py module name is pizza
[<pizza.Pizza object at 0x1035dbeb8>, <pizza.Pizza object at 0x1035fb2b0>,
<pizza.Pizza object at 0x1036b6c50>]
But it fails in REPL:
pizza-shop$ python3
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pizzapy import menu
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/aruprakshit/python_playground/pizza-shop/pizzapy/menu.py", line
2, in <module>
from pizza import Pizza
ModuleNotFoundError: No module named 'pizza'
>>>
What is the reason of this inconsistency ?
Thanks,
Arup Rakshit
[email protected]
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor