tomer 发表于 2014-11-04 12:39

疑问

本帖最后由 tomer 于 2014-11-04 12:41 编辑


def make_omelet_q3(fridge,omelet_name = "mozzarella"):
    def get_omelet_ingredients(omelet_name):
      ingredients = {"eggs":2,"milk":1}
      if omelet_name == "cheese":
      ingredients["cheddar"] = 2
      elif omelet_name == "western":
      ingredients["jack_cheese"] = 2
      ingredients["ham"] = 1
      ingredients["pepper"] = 1
      ingredients["onion"] = 1
      elif omelet_name == "greek":
      ingredients["feta_cheese"] = 2
      ingredients["spinach"] = 2
      elif omelet_name == "mozzarella":
      ingredients["mozzarella cheese"] = 2
      ingredients["roast red pepper"] = 2
      ingredients["mushroom"] = 1
      else:
      print("That's not on the menu,sorry")
      return None
      return ingredients
f={'egg':12,'mozzarella':6,'milk':20,'roast red pepper':4,'mushrooms':3}
n=make_omelet_q3(f, "cheese")
print(n)
此程序输出位"None"
"cheese传入函数 get_omelet_ingredients(),出来应该是{"eggs":2,"milk":1,"cheddar":2}呀,不知道哪里理解出问题了?

wtz_wh 发表于 2014-11-04 12:46

def get_omelet_ingredients(omelet_name):
你只定义了这个函数,但是没有调用撒

回复 1# tomer


   

tomer 发表于 2014-11-04 12:47

本帖最后由 tomer 于 2014-11-04 12:49 编辑

回复 2# wtz_wh

make_omelet_q3(f, "cheese")
这个函数不是调用了吗?

    make_omelet_q3()不调用get_omelet_ingredients()吗?

    上面定义make_omelet_q3时里面包含了定义get_omelet_ingredients()

wtz_wh 发表于 2014-11-04 12:50

get_omelet_ingredients是你在那个函数里又定义的函数...回复 3# tomer


   

tomer 发表于 2014-11-04 12:52

回复 4# wtz_wh

函数make_omelet_q3()里的函数get_omelet_ingredients()在调用make_omelet_q3()时不会知道调用get_omelet_ingredients()?
   

tomer 发表于 2014-11-04 13:06

这样就行了
def make_omelet_q3(fridge,omelet_name = "mozzarella"):
    def get_omelet_ingredients(omelet_name):
      ingredients = {"eggs":2,"milk":1}
      if omelet_name == "cheese":
      ingredients["cheddar"] = 2
      elif omelet_name == "western":
      ingredients["jack_cheese"] = 2
      ingredients["ham"] = 1
      ingredients["pepper"] = 1
      ingredients["onion"] = 1
      elif omelet_name == "greek":
      ingredients["feta_cheese"] = 2
      ingredients["spinach"] = 2
      elif omelet_name == "mozzarella":
      ingredients["mozzarella cheese"] = 2
      ingredients["roast red pepper"] = 2
      ingredients["mushroom"] = 1
      else:
      print("That's not on the menu,sorry")
      return None
      return ingredients
    return get_omelet_ingredients(omelet_name)

f={'egg':12,'mozzarella':6,'milk':20,'roast red pepper':4,'mushrooms':3}
n=make_omelet_q3(f, "cheese")
print(n)

wtz_wh 发表于 2014-11-04 13:12

你在该函数里调用了吗?

没调用怎么可能会去执行呢?


回复 5# tomer


   
页: [1]
查看完整版本: 疑问