Can anyone describe how to return objects from a method on which further methods and attributes can be accessed?
Example:
JavaScript
x
5
1
pizza = PizzaHut()
2
order = pizza.order()
3
print order.order_number
4
order.cancel()
5
Advertisement
Answer
Create an Order
class with appropriate methods and properties. After that, you’ll be able to return an instance of this class from PizzaHut.order()
method.
JavaScript
1
32
32
1
class Order(object):
2
def __init__(self, number, amount):
3
self.number = number
4
self.amount = amount
5
print self
6
7
def __str__(self):
8
return "Order #%s: amount = %s" % (self.number, self.amount)
9
10
@property
11
def order_number(self):
12
return self.number
13
14
def cancel(self):
15
self.amount = 0
16
print "Order is cancelled."
17
print self
18
19
20
class PizzaHut(object):
21
22
def __init__(self, price):
23
self.price = price
24
25
def order(self):
26
return Order(42, self.price)
27
28
pizza = PizzaHut(4.99)
29
order = pizza.order()
30
print order.order_number
31
order.cancel()
32
Python 3 version
JavaScript
1
31
31
1
class Order:
2
def __init__(self, number, amount):
3
self.number = number
4
self.amount = amount
5
print(self)
6
7
def __str__(self):
8
return f'Order #{self.number}: amount = {self.amount}'
9
10
@property
11
def order_number(self):
12
return self.number
13
14
def cancel(self):
15
self.amount = 0
16
print('Order is cancelled.')
17
print(self)
18
19
20
class PizzaHut:
21
def __init__(self, price):
22
self.price = price
23
24
def order(self):
25
return Order(42, self.price)
26
27
pizza = PizzaHut(4.99)
28
order = pizza.order()
29
print(order.order_number)
30
order.cancel()
31