2016-01-02 4 views
-2

Я новичок в Python, и я хотел бы определить функцию, которая принимает 5 аргументов и кортеж в конце. Что такое синтаксис для этого?Как определить функцию нескольких параметров и кортежей в Python?

Заранее спасибо.

+0

Вы должны поставить свои попытки и объяснить почему вы не можете этого достичь. –

+0

Кортеж - это просто еще один аргумент. Что еще нового? –

ответ

2

Поскольку Python динамически типизирован, нет способа (или необходимости) указать тип аргументов. Так что если у вас есть 5 аргументов, и еще один аргумент в конце, который является кортеж, то вы просто есть 6 аргументов:

def example (arg1, arg2, arg3, arg4, arg5, someTuple): 
    print('You passed: {}, {}, {}, {}, {}'.format(arg1, arg2, arg3, arg4, arg5)) 
    print('And the following tuple:') 
    print(someTuple) 

example('A', 'B', 'C', 'D', 'E', (1, 2, 3, 4)) 

дает следующий результат:

You passed: A, B, C, D, E 
And the following tuple: 
(1, 2, 3, 4) 
+0

Спасибо! Посмотрите, хотя я пытаюсь использовать [[curve_fit]] для этой функции, и я получаю ошибку «tuple index out the range». Я делаю это так: [[popt, pcov = curve_fit (func, x, y, p0 = q)]]. Любые идеи были бы очень оценены. – nikfilippas

+0

@nikfilippas Это совершенно другой вопрос. Если это то, что вы пытались сделать, вы должны были сказать это с самого начала. Вы не передаете аргументы функции, так что это действительно меняет ситуацию. При этом я не знаю, как работает «curve_fit», поэтому я не могу вам помочь. – poke