Python:在构造默认值时使用姐妹参数
我知道我可以在scala中实现这一点,但有没有一种方法可以在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
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')
输出