如何从Python中的方法返回对象?

2024-04-20 08:38:30 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能描述一下如何从一个方法返回对象,在这个方法上可以访问更多的方法和属性吗

例如:

pizza = PizzaHut()
order = pizza.order()
print order.order_number
order.cancel()

Tags: 对象方法number属性ordercancelprintpizza
3条回答
class Foo():
    def f(self):
        print "Foo.f called"

class Bar():
    def b(self):
        return Foo()

bar = Bar()
bar.b().f() # prints "Foo.f called"

使用适当的方法和属性创建Order类。之后,您将能够从PizzaHut.order()方法返回此类的实例

class Order(object):
    def __init__(self, number, amount):
        self.number = number
        self.amount = amount
        print self

    def __str__(self):
        return "Order #%s: amount = %s" % (self.number, self.amount)

    @property
    def order_number(self):
        return self.number

    def cancel(self):
        self.amount = 0
        print "Order is cancelled."
        print self


class PizzaHut(object):

    def __init__(self, price):
        self.price = price

    def order(self):
        return Order(42, self.price)

pizza = PizzaHut(4.99)
order = pizza.order()
print order.order_number
order.cancel()

http://repl.it/WWB

class Order:
   def __init__(self, number):
      self.order_number = number


class PizzaHut:
   def __init__(self):
      self.order = Order(1234)

   def order(self):
      return self.order

相关问题 更多 >