そこで、列ヘッダーを追加するオプションを持つ転置関数を作成しましたが、Python で *args を使用してバグに遭遇したと思います。
>>> def transpose(*args,header=None):
File "<stdin>", line 1
def transpose(*args,header=None):
^
SyntaxError: invalid syntax
はい、 *args は任意の数の値のためのものなので、その後に何も置くことはできませんが、variable=value
その変数には自動割り当てがあり、 *args とは別のものになるため、置くことができるはずですheader=['col1','col2','col3']
等
以下はエラーになりません。
def transpose(header=None,*args):
#code goes here
これに関する唯一の問題は、これにより、関数への最初の入力が必要なくヘッダーに割り当てられheader=value
、header
必要な入力が行われることです。これは私が望むものではなく、任意の必要な値の数。
このエラーが発生すると、要件ではない入力を使用して入力する関数を持つことが不可能に見え*args
ます。これはpythonのバグですか?
注:私はpython2.7を使用しているため、バグである場合、そのバージョンのバグである可能性が非常に高い