函数中文件路径的默认值导致语法错误。如何解决?

2 投票
5 回答
1798 浏览
提问于 2025-04-15 20:34

对于这个,

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

然后再把它放进这个函数里呢?

5 个回答

0

没关系。

SyntaxError: non-default argument follows default argument 

这是说参数的顺序,所以,

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

这样就可以了!

我还是个新手

0

重新排列参数:

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

这样做的原因是,带有默认值的参数可以不写。
但是如果你调用 f('foo'),就不清楚你是想设置 type 这个参数,而把 data_file_path 忽略掉,还是说你想同时设置这两个参数。

1

type 移到 data_file_path 之前

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

在函数参数中赋值的叫做默认参数,这些默认参数应该放在非默认参数之后。

撰写回答