0

不知道如何正确形成,但问题与写入新行的 shapefile(python 库)函数有关,这需要写入变量。从我的数据中,我正在创建一个列表,我认为我可以将其转换为tuple 并且会解决我的问题,但是不...我没那么容易...

该函数在问这个: w.record(a, b, c, d....)或者w.record('a', 256, 25.2444, 'd'....) 我的数据在一个列表中,但列表长度不知道我的默认值,它取决于输入数据,正确的长度很重要!

我也可以写w.record(list[0], list[1]...list[len(list)-1]),但是我必须自动创建它,不知道我该怎么做。

顺便说一句,我使用旧的 python:2.5...(不是我的选择)

4

2 回答 2

1

argument函数声明中有 4 种类型:-

  • 位置论据
  • 默认参数(或关键字参数 - 形式: - a = 5
  • 非关键字参数
  • 关键字参数(或字典类型关键字参数)

一个典型的函数声明是这样的:-

func(positional_args, keyword_args,
                     *tuple_grp_nonkw_args, **dict_grp_kw_args)

您需要non-keyword参数,它需要额外的参数并将它们存储为tuple

w.record(*yourvalues)

同样keyword的参数,dictionary作为输入。它们用 表示**kwarg

  • 非关键字参数之后的所有关键字参数进入**kwarg
  • 并且非关键字参数之前的所有关键字参数都是默认参数

对于 EG:-

// nkwarg takes a list
// kwarg takes a dictionary
def foo(arg, defaultarg = 5, *nkwarg, **kwarg):
    print arg
    print defaultarg
    print nkwarg
    print kwarg


foo("hello", ["how", "are", "you"], a = 3, b = 4)

输出: -

hello
5
(['how', 'are', 'you'],)
{'a': 3, 'b': 4}
于 2012-10-18T09:25:31.893 回答
0
def foo(hello, *args):
 print hello

 for each in args:
     print each

if __name__ == '__main__':
 foo("LOVE", ["lol", "lololol"])
于 2012-10-18T09:25:26.877 回答