2017-05-30 7 views
1

Ich weiß, dass ich dies in scala tun kann, aber ist es eine Möglichkeit, etwas Ähnliches in Python zu tun:Python: Verwenden Schwester Parameter in Constructing Standardwerte

def validate_config(data_dir, config_file_dir = data_dir + '/config', json_schema = None): 
    print(data_dir) 
    print(config_file_dir) 
    print(json_schema) 

validate_config('data') 

Der Ausgang Ich erwarte ist:

data 
data/config 
None 

Vielen Dank!

Antwort

5

Dies wird nicht direkt unterstützt. Ich würde dies tun die gleiche Art und Weise Python wandelbar Standardinstanzen vermeidet:

def validate_config(data_dir, config_file_dir=None, json_schema=None): 
    if config_file_dir is None: 
     config_file_dir = data_dir + '/config' 
    # rest of code here 
2

nicht genau, weil Python die Standard-args ausgewertet werden, wenn die Funktionsdefinition kompiliert wird. Aber Sie können als Standard verwenden arg None und überprüfen Sie es zur Laufzeit, wie folgt aus:

def validate_config(data_dir, config_file_dir=None, json_schema=None): 
    if config_file_dir is None: 
     config_file_dir = data_dir + '/config' 
    print(data_dir) 
    print(config_file_dir) 
    print(json_schema) 

validate_config('data') 

Ausgang

data 
data/config 
None 
Verwandte Themen