当第一项包含可变对时可变 rlist(家庭作业)
Mutable rlist when first item holds a mutable pair (homework)
def mutable_pair(x,y):
def get_item(index):
if index == 0:
return x
return y
def set_item(index , val):
nonlocal x,y
if index == 0:
x = val
else:
y = val
def make_dict():
contents = None
def make_rlist(first,rest):
return (first,rest)
def dispatch(message,key,value):
nonlocal contents
if message == 'push_first':
contents = make_rlist(mutable_pair(key, value), contents)
z = make_dict()
z('push_first')(2,4)
我有这个问题,当我尝试运行这段代码时,我得到了下一个错误:
Traceback (most recent call last):
File "C:\Users\Michael\workspace\HomeWork1\src\tests.py", line 35, in <module>
z('push_first')(2,4)
TypeError: 'NoneType' object is not callable:
对我错在哪里的解释会有所帮助
TypeError: 'NoneType' object is not callable:
make_dict
returnsNone
,所以z
是None
,z('push_first')
不行。
def mutable_pair(x,y):
def get_item(index):
if index == 0:
return x
return y
def set_item(index , val):
nonlocal x,y
if index == 0:
x = val
else:
y = val
def make_dict():
contents = None
def make_rlist(first,rest):
return (first,rest)
def dispatch(message,key,value):
nonlocal contents
if message == 'push_first':
contents = make_rlist(mutable_pair(key, value), contents)
z = make_dict()
z('push_first')(2,4)
我有这个问题,当我尝试运行这段代码时,我得到了下一个错误:
Traceback (most recent call last):
File "C:\Users\Michael\workspace\HomeWork1\src\tests.py", line 35, in <module>
z('push_first')(2,4)
TypeError: 'NoneType' object is not callable:
对我错在哪里的解释会有所帮助
TypeError: 'NoneType' object is not callable:
make_dict
returnsNone
,所以z
是None
,z('push_first')
不行。