说我有一个字典:
def funcA():
invdict = {{'fruits':{'apple','manggo'}},{'veggies':{'cabbage','cucumber'}},{'drinks:{'juice','coke'}}}
return(invdict)
我想通过其键和值将字典invdict
调用到另一个函数
def funcB():
invdict = funcA()
return invdict
主要代码是
def funcA()
def funcB()
print(funcA)
print(funcB)
答案 0 :(得分:2)
我已经给您留下了评论,但我想我会将其添加到答案中,以使其更易于阅读而不受评论的限制。
这里有两个问题。首先,您似乎正在尝试制作列表的字典,但是您对列表使用字典语法(大括号)而不是列表语法(方括号),所以不要这样做:
# this is wrong
invdict = {{'fruits':{'apple','manggo'}},{'veggies':{'cabbage','cucumber'}},{'drinks:{'juice','coke'}}}
您应该这样做:
# this is right
invdict = {'fruits': ['apple','mango'], 'veggies': ['cabbage','cucumber'], 'drinks': ['juice','coke']}
您还可以使用适当放置的空白使它更容易阅读:
# easier to read
invdict = {'fruits': ['apple','mango'],
'veggies': ['cabbage','cucumber'],
'drinks': ['juice','coke']}
现在下一个问题。您希望函数funcB知道有关invdict的信息,当前仅在函数funcB的名称空间中可用。看来您正在尝试从funcA退回发票,但您使用的归还错误。看起来您还想打印这些函数的返回值,但同样,您的语法也不正确(您正在打印函数实例,而不是调用它并打印其返回值。)您可能想要做的是:
def funcA():
# correct syntax for a dictionary of lists, with whitespace for readability
invdict = {'fruits': ['apple','mango'],
'veggies': ['cabbage','cucumber'],
'drinks': ['juice','coke']}
# correct usage of return statement
return invdict
def funcB():
invdict = funcA()
return invdict
# correct way to call functions for their return values
print(funcA())
print(funcB())
请记住,要调用函数,您必须执行function_name()。如果函数带有参数,则参数将放在括号之间。如果不带参数,则只需使用“()”。如果仅键入函数名称,那么您将传递函数定义本身,而不是执行该函数(对此有单独的用途,但这是另一回事了。)