Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在构造默认值时使用姐妹参数_Python_Python 2.7 - Fatal编程技术网

Python:在构造默认值时使用姐妹参数

Python:在构造默认值时使用姐妹参数,python,python-2.7,Python,Python 2.7,我知道我可以在scala中实现这一点,但有没有一种方法可以在python中实现类似的功能: 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') 我期望的结果是: data dat

我知道我可以在scala中实现这一点,但有没有一种方法可以在python中实现类似的功能:

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')
我期望的结果是:

data
data/config
None
data
data/config
None

谢谢

这是不直接支持的。我会用Python避免可变默认实例的相同方法来实现这一点:

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

这是不直接支持的。我会用Python避免可变默认实例的相同方法来实现这一点:

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

不完全是这样,因为Python的默认参数是在编译函数定义时计算的。但是您可以使用
None
作为默认参数,并在运行时检查它,如下所示:

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')
输出


不完全是这样,因为Python的默认参数是在编译函数定义时计算的。但是您可以使用
None
作为默认参数,并在运行时检查它,如下所示:

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')
输出