2015-10-23 3 views
0

У меня возникли проблемы с разбором строки для функции в python.Как разбирать строку с запятой в Python?

def logAppend(self, data): 
    print(data) 

Когда я разбираю строку с запятой в приведенном выше коде, она возвращает следующее.

TypeError: logAppend() takes exactly 2 arguments (3 given)

Я вроде новичок в Python, так что, пожалуйста, успокойтесь на меня, если я что-то просто не хватает здесь ..

+2

Можете ли вы поместить строку так, чтобы мы могли видеть? – Maikflow

+3

Да, укажите весь код и вывод. Нам нужен лучший контекст, чтобы понять проблему. –

+0

Глядя на ошибку, которую вы опубликовали, кажется, что ваша строка имеет ровно 1 запятую, и вы не передаете ее как строку. Вместо этого это может выглядеть так: Привет! вместо «Привет, вот!». Таким образом, в первом случае одна запятая привела Python к выводу, что вы передаете 2 аргумента, а по умолчанию этот указатель «этот». Таким образом, Python полагает, что вы передаете 3 аргумента, следовательно, ошибку. Приложите строку в кавычки и передайте ее функции. – manty

ответ

-2

Неясно, что ваша строка, но если Вы предполагаете это (я, данные), эти две вещи на самом деле являются переменными для вашей функции. Либо можно вызвать строку, либо, более вероятно, список строк, которые будут, например, ['string1', 'string2'].

+1

'self' не будет передаваться явно, и имена на сайте вызова не обязательно будут иметь какое-либо отношение к именам в функции. И если OP фактически передал настоящий «список», это не вызовет проблемы с подсчетом аргументов (если они не использовали '*' распаковку, но это менее вероятно). Отправка ответов, которые являются не чем иным, как спекуляцией, не очень полезна. – ShadowRanger

Смежные вопросы