2010-03-18 59 views
2

此,函數中文件路徑的默認值爲SyntaxError。解決?

import os.path 

def f(data_file_path=os.path.join(os.getcwd(),'temp'),type): 
    ... 
    return data 

我得到這個,

SyntaxError: non-default argument follows default argument 

有沒有一種方法,使這項工作或做我必須定義,如變量,

rawdata_path = os.path.join(os.getcwd(),'temp') 

和然後將其插入功能?

回答

1

data_file_path

def f(type,data_file_path=os.path.join(os.getcwd(),'temp')): 

在功能參數調用默認參數指定值之前移動type,這些應該來afther非默認參數

0

你必須選擇的參數的順序。強制參數(沒有默認值)必須在具有設置默認值的參數之前。

0

重新排列參數:

def f(type, data_file_path=os.path.join(os.getcwd(),'temp')): 
    pass 

原因爲此,可以省略具有默認值的參數。
但你打電話f('foo'),它不知道,如果你想設置type和省略data_file_path與否。

0

參數有一個默認值應該放在所有參數後沒有默認值。

將其更改爲:

import os.path 

def f(type, data_file_path=os.path.join(os.getcwd(),'temp')): 
    ... 
    return data 
0

沒關係。

SyntaxError: non-default argument follows default argument 

指的參數,以便順序,

def f(type,data_file_path=os.path.join(os.getcwd(),'temp')): 

作品!

我新受