首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位置参数跟随关键字参数

位置参数跟随关键字参数
EN

Stack Overflow用户
提问于 2020-10-08 10:43:06
回答 1查看 120关注 0票数 0

代码如下:

代码语言:javascript
复制
    CSV_COLUMNS = ['survived', 'sex', 'age', 'n_siblings_spouses', 'parch', 
    'fare', 'class', 'deck', 'embark_town', 'alone']
    
dataset = tf.data.experimental.make_csv_dataset(..., column_names=CSV_COLUMNS, ...)

当我在我的tensorflow对象上运行这段代码时,我得到了一个类型错误:位置参数跟随关键字参数。

当我尝试调试它时,如下所示

代码语言:javascript
复制
CSV_COLUMNS = ['survived', 'sex', 'age', 'n_siblings_spouses', 'parch', 'fare', 'class', 'deck', 'embark_town', 'alone']
    
dataset = tf.data.experimental.make_csv_dataset(..., ..., column_names=CSV_COLUMNS)

然后我得到了另一个类型错误: make_csv_dataset_v2()缺少一个必需的位置参数:'batch_size‘

最后,我再次更改了它

代码语言:javascript
复制
CSV_COLUMNS = ['survived', 'sex', 'age', 'n_siblings_spouses', 'parch', 'fare', 'class', 'deck', 'embark_town', 'alone']
    
dataset = tf.data.experimental.make_csv_dataset(..., column_names=CSV_COLUMNS, batch_size = 64)

另一个类型错误:“省略号”对象不可迭代

我要疯了!

EN

回答 1

Stack Overflow用户

发布于 2020-10-09 08:55:38

错误"SyntaxError: positional argument follows argument“(我不认为这是您建议的TypeError )意味着您正在像这样使用函数调用的参数:

代码语言:javascript
复制
some_function(10, b=20, 30)

请注意,中间参数是如何使用关键字'b‘显式命名的,但第一个和第三个参数不是,它们依赖于正确的位置。

这样做是不允许的,在赋值所有需要的位置参数之前使用关键字参数。由于Python确实允许按位置使用关键字参数,因此有几种方法可以解决这个问题。例如:

代码语言:javascript
复制
def some_function(a, b, c=0, d=1):
    pass


# these are OK
some_function(10, 20)
some_function(10, b=20)
some_function(10, 20, 30)
some_function(10, 20, d=40)

# this is not OK
some_function(10, b=20, 30)
# this is the fix:
some_function(10, b=20, c=30)

对于相同的示例函数,如果您像这样调用它:

代码语言:javascript
复制
some_function(10, c=30)

你会得到你提到的第二个错误:"TypeError: some_function()缺少1个必需的位置参数“。这是有道理的,因为b现在有什么价值?

最后一条错误消息“‘省略号’对象不可迭代”要具体得多。Python语言中有一个特殊的对象,叫做Ellipsis,也被写成...。它不是可迭代的(例如,你不能做像for x in ...这样的事情),你得到的错误可能意味着它被赋值给某个参数,该参数期望传递一个可迭代。

您可能应该非常仔细地检查您传递的是什么参数,以及您希望将这些参数分配给哪些参数,一旦修复了这些参数,这个错误也不会再出现。要探究为什么会导致这种情况,实在是太离谱了。

您可能实际上想要或需要使用省略号,以告诉对象或函数自动填充某些参数并避免传递大量参数,但在这种情况下,您需要非常详细地说明您正在使用的库,因为这不是标准的Python行为,而是特定于这些库中发生的事情,您可能应该参考它们的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64255034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档