TypeError: split () не принимает аргументов ключевых слов в Python 2.икс

Я пытаюсь разделить раздел документа на его различные компоненты, которые разделены амперсандами. Вот что у меня есть:--3-->

name,function,range,w,h,k,frac,constraint = str.split(str="&", num=8)

ошибка:

TypeError: split() takes no keyword arguments

может ли кто-нибудь объяснить мне ошибку, а также предоставить альтернативный метод для меня, чтобы сделать эту работу?

3 ответов


параметры str.split называют sep и maxsplit:

str.split(sep="&", maxsplit=8)

но вы можете использовать только такие имена параметров, как в Python 3.х. В Python 2.x, вам нужно сделать:

str.split("&", 8)

что, на мой взгляд, лучше всего для обеих версий, так как использование имен действительно просто избыточно. str.split - очень известный инструмент в Python, поэтому я сомневаюсь, что у программистов Python возникнут проблемы с пониманием аргументов метода означать.

кроме того, вы должны избегать создания пользовательских имен, таких же, как одно из встроенных имен. Делать это затмевает встроенный и делает его непригодным для использования в текущей области. Итак, я бы выбрал другое имя для вашей строки, кроме str.


ошибка гласит, что вы не можете предоставить именованные аргументы split. Вы должны позвонить split только с аргументами-без имен аргументов:

name,function,range,w,h,k,frac,constraint = str.split("&", 8)

split не получает аргументы ключевого слова str или num. Вместо этого:

name,function,range,w,h,k,frac,constraint  = str.split('&', 8)