为什么 gdal.translate 不接受第三个参数?
Why does gdal.translate not accept a third argument?
根据文档,gdal.Translate 应该接受三个参数。下面的代码片段直接从定义文件中复制gdal.py
def Translate(destName, srcDS, **kwargs):
我的函数调用如下所示:
gdal.Translate(tileName, rasterfile, options)
我的 IDE ( VScode) 立即注意到有些地方不对劲,并告诉我给出的论点太多了。 运行 该代码导致以下错误消息:
Traceback (most recent call last): File
"c:/Users/parejo/Desktop/tile_gen.py", line 24, in
gdal.Translate(tileName, rasterfile, options) TypeError: Translate() takes 2 positional arguments but 3 were given
我在这里错过了什么?
代码本身没问题,如果我删除 options
参数,一切运行顺利,但由于我缺少我的选项,我没有得到我想要的结果。
尝试用这个调用(没有测试代码)
gdal.Translate(tileName, rasterfile, *options)
def Translate(destName, srcDS, **kwargs):
表示函数接受可变数量的 keyword arguments,它可以随意解释。
如果你有一个字典,例如
options = {"something": true}
或更动态生成的东西,并且您希望将其传入,您可以在调用函数时使用相同的 **
语法将其解压缩到关键字参数中:
gdal.Translate(tileName, rasterfile, **options)
当你不需要动态调整关键字参数时,直接传入它们更符合 Pythonic:
gdal.Translate(tileName, rasterfile, something=True)
像这样的东西应该可以工作:
options = {
'destName': tileName,
'srcDS': rasterfile,
# kwargs options
}
gdal.Translate(**options)
根据文档,gdal.Translate 应该接受三个参数。下面的代码片段直接从定义文件中复制gdal.py
def Translate(destName, srcDS, **kwargs):
我的函数调用如下所示:
gdal.Translate(tileName, rasterfile, options)
我的 IDE ( VScode) 立即注意到有些地方不对劲,并告诉我给出的论点太多了。 运行 该代码导致以下错误消息:
Traceback (most recent call last): File "c:/Users/parejo/Desktop/tile_gen.py", line 24, in gdal.Translate(tileName, rasterfile, options) TypeError: Translate() takes 2 positional arguments but 3 were given
我在这里错过了什么?
代码本身没问题,如果我删除 options
参数,一切运行顺利,但由于我缺少我的选项,我没有得到我想要的结果。
尝试用这个调用(没有测试代码)
gdal.Translate(tileName, rasterfile, *options)
def Translate(destName, srcDS, **kwargs):
表示函数接受可变数量的 keyword arguments,它可以随意解释。
如果你有一个字典,例如
options = {"something": true}
或更动态生成的东西,并且您希望将其传入,您可以在调用函数时使用相同的 **
语法将其解压缩到关键字参数中:
gdal.Translate(tileName, rasterfile, **options)
当你不需要动态调整关键字参数时,直接传入它们更符合 Pythonic:
gdal.Translate(tileName, rasterfile, something=True)
像这样的东西应该可以工作:
options = {
'destName': tileName,
'srcDS': rasterfile,
# kwargs options
}
gdal.Translate(**options)