Python 为什么我的代码出错,我想打印两个函数的参数
用返回b替换b() 在Python 3.1中运行此功能:Python 为什么我的代码出错,我想打印两个函数的参数,python,Python,用返回b替换b() 在Python 3.1中运行此功能: def c(*x,**y): print x,y def a(*x,**y): print x def b(*x1,**y1): c(*(x+x1),**dict(y,**y1)) b() a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')#error 产生: def c(*x,**y): print(x,y) def a(*x,**y): p
def c(*x,**y):
print x,y
def a(*x,**y):
print x
def b(*x1,**y1):
c(*(x+x1),**dict(y,**y1))
b()
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')#error
产生:
def c(*x,**y):
print(x,y)
def a(*x,**y):
print(x)
def b(*x1,**y1):
c(*(x+x1),**dict(y,**y1))
return b
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')
用返回b替换b()
在Python 3.1中运行此功能:
def c(*x,**y):
print x,y
def a(*x,**y):
print x
def b(*x1,**y1):
c(*(x+x1),**dict(y,**y1))
b()
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')#error
产生:
def c(*x,**y):
print(x,y)
def a(*x,**y):
print(x)
def b(*x1,**y1):
c(*(x+x1),**dict(y,**y1))
return b
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')
函数a()未返回函数;实际上,它返回None
。因此,第二组括号是对None对象的调用,这是一个错误。您是否打算返回函数,比如执行类似于
返回b
的操作?函数a()不返回函数;实际上,它返回None
。因此,第二组括号是对None对象的调用,这是一个错误。>>> ================================ RESTART ================================
>>>
(1, 2, 3)
(1, 2, 3, 4, 5, 6) {'a': 1, 'c': '222', 'b': 2, 'd': 'aaa'}
>>>
您是否打算返回函数,例如执行类似于返回b的操作
>>> ================================ RESTART ================================
>>>
(1, 2, 3)
(1, 2, 3, 4, 5, 6) {'a': 1, 'c': '222', 'b': 2, 'd': 'aaa'}
>>>
我假设您遇到了“对象不可调用”异常
可能需要返回函数对象“b”(不是“b”的结果)
所以不是
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')#error
试一试
我假设您遇到了“对象不可调用”异常
可能需要返回函数对象“b”(不是“b”的结果)
所以不是
a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa')#error
试一试
我得到的错误是:
回溯(最近一次呼叫最后一次):文件“/tmp.py”,第11行,在 a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa') TypeError:“非类型”对象不是 可调用 我可以通过将您的代码更改为:
return b # without braces and with 'return'
这将产生以下输出:
(1、2、3)
(1,2,3,4,5,6){'a':1,
‘c’:‘222’,‘b’:2,‘d’:‘aaa’}
你还没有说明你想要达到什么,所以我不知道这是否是你想要的。我得到的错误是:
回溯(最近一次呼叫最后一次):文件“/tmp.py”,第11行,在 a(1,2,3,a=1,b=2)(4,5,6,c='222',d='aaa') TypeError:“非类型”对象不是 可调用 我可以通过将您的代码更改为:
return b # without braces and with 'return'
这将产生以下输出:
(1、2、3)
(1,2,3,4,5,6){'a':1,
‘c’:‘222’,‘b’:2,‘d’:‘aaa’}
你还没有说明你想要实现什么,所以我不知道这是否是你想要的。你想要实现什么?你到底得到了什么错误信息?你想实现什么?你到底收到了什么错误消息?是的,Python不会自动返回函数的最后一行。即使返回了,返回b()也不会起作用,因为那样会返回b(无)的返回值。是的,Python不会自动返回函数的最后一行。即使返回了,也会返回b()不起作用,因为这将返回b的返回值(无)。