Python 无法从函数定义中解包错误
我创建了一个函数“grid”,用于表示坐标的一维或二维网格。当我运行我的代码时,我得到以下错误:无法解包非iterable非类型对象 我已经使用布尔逻辑来设置我的函数,因此如果我想将参数设置为1D并使用X值,我可以将参数设置为==FalsePython 无法从函数定义中解包错误,python,function,boolean,Python,Function,Boolean,我创建了一个函数“grid”,用于表示坐标的一维或二维网格。当我运行我的代码时,我得到以下错误:无法解包非iterable非类型对象 我已经使用布尔逻辑来设置我的函数,因此如果我想将参数设置为1D并使用X值,我可以将参数设置为==False def grid(x_min, x_max, y_min, y_max, dx): if x_min and x_max and not y_min and not y_max: grid_x = np.arange(x_min,
def grid(x_min, x_max, y_min, y_max, dx):
if x_min and x_max and not y_min and not y_max:
grid_x = np.arange(x_min, x_max, dx)
return grid_x, dx
if x_min and x_max and y_min and y_max:
grid_x = np.arange(x_min, x_max, dx)
grid_y = np.arange(y_min, y_max, dx)
return grid_x, grid_y, dx
grid_x, grid_y, dx = grid(0, 10, 0, 10, 1)
我知道问题出在我的最后一行代码上,但我无法理解这个错误对我的函数的实际意义。因为x_min是0,两个if语句都是false,所以方法没有返回任何值(这意味着没有返回值) 这意味着您试图不打开任何文件包
grid\u x,grid\u y,dx=None
由于x\u min为0,两个if语句都为false,因此方法没有返回任何值(这意味着没有返回值)
这意味着您试图不打开任何文件包grid\u x,grid\u y,dx=None
整数0的布尔值为False
In [169]: bool(0)
Out[169]: False
因为x_min为0,所以代码中的if块都不会执行,并且函数返回一个无法解包的none
如果要检查参数是否已传递,应该执行以下操作
if arg is not None
整数0的布尔值为False
In [169]: bool(0)
Out[169]: False
因为x_min为0,所以代码中的if块都不会执行,并且函数返回一个无法解包的none
如果要检查参数是否已传递,应该执行以下操作
if arg is not None