Значение по умолчанию для пути к файлу в функции дает SyntaxError. Работать вокруг? - PullRequest
2 голосов
/ 18 марта 2010

для этого

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 ]

1 голос
/ 18 марта 2010

Ход type до data_file_path

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

Присваивая значения в параметре функции, называемом аргументами по умолчанию, они должны следовать после аргументов не по умолчанию

0 голосов
/ 18 марта 2010

Неважно.

SyntaxError: non-default argument follows default argument 

относится к порядку аргументов так,

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

работает!

я новичок

0 голосов
/ 18 марта 2010

Аргументы со значением по умолчанию должны быть помещены после всех аргументов без значения по умолчанию.

Измените его на:

import os.path

def f(type, data_file_path=os.path.join(os.getcwd(),'temp')):
    ...
    return data
0 голосов
/ 18 марта 2010

Переставьте параметры:

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

Причина этого в том, что аргументы со значениями по умолчанию могут быть опущены.
Но из вас звонят f('foo'), не известно, хотите ли вы установить type и пропустить data_file_path или нет.

0 голосов
/ 18 марта 2010

Вы должны изменить порядок аргументов. Обязательные аргументы (без значений по умолчанию) должны предшествовать аргументам с установленными значениями по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...