chaîne de caractères.split(texte) ou du texte.split() : quelle est la différence?
Il y a une chose que je ne comprends pas...
Imaginez que vous avez un texte = "bonjour le monde" et que vous voulez diviser.
Dans certains endroits, je vois des gens qui veulent diviser la texte faire:
string.split(text)
Dans d'autres endroits, je vois des gens faire juste:
text.split()
Quelle est la différence? Pourquoi vous le faites dans un sens ou dans l'autre sens? Pouvez-vous me donner une théorie de l'explication à ce sujet?
J'ai remplacé 'str' par 'texte' à cause de 'str' est un builtin nom en Python (type(") == str).
OriginalL'auteur UcanDoIt | 2008-12-02
Vous devez vous connecter pour publier un commentaire.
Fait intéressant, les docstrings pour les deux ne sont pas tout à fait la même en Python 2.5.1:
À creuser plus profond de vous, vous verrez que les deux formes sont complètement équivalents, comme chaîne de caractères.split(s) fait des appels s.split() (recherche de la split-fonctions).
OriginalL'auteur csl
La
string.split(stringobj)
est une caractéristique de lastring
module, qui doivent être importés séparément. Once upon a time, c'était la seule façon de découper une chaîne de caractères. C'est un vieux code que vous cherchez.La
stringobj.split()
est une caractéristique d'un objet de type string,stringobj
, qui est plus récent que lestring
module. Mais assez vieux, tout de même. C'est la pratique actuelle.Parce qu'il ne peut comprendre que les
str
est une chaîne de caractères et des méthodes comme le 'split()`.Aussi, si vous êtes littéralement dire
str
, c'est une fonction intégrée, et ajoute à la confusion. Si vous êtes en train de dire "someStringObj", alors que c'est l'Éclipse de l'incapacité de la raison le type de la variable.FYI PyDev la liste des problèmes est ici, pas sur Github, mais je ne peux pas trouver un numéro sur "saisie semi-automatique de la chaîne méthodes"
OriginalL'auteur S.Lott
Une note:
str
est le type de chaîne, comme S. Lott points ci-dessus. Cela signifie que ces deux formes:...sont équivalentes, car
str.split
est indépendant de la méthode, tout ens.split
est une méthode liée à unstr
objet. Dans le second cas, la chaîne qui est transmis àstr.split
est utilisé commeself
dans la méthode.Cela n'a pas beaucoup de différence ici, mais c'est une caractéristique importante de la façon Python objet système fonctionne.
Plus d'infos sur lié et non lié méthodes.
OriginalL'auteur babbageclunk
Réponse courte: la chaîne de module est la seule façon d'effectuer ces opérations avant de python 1.6 - depuis, ils ont été ajoutés pour les chaînes de caractères comme des méthodes.
OriginalL'auteur Geoglyph
Utilisez celle que vous aimez, mais se rendent compte que les str.split est la meilleure façon de le faire. 🙂
chaîne.split est un peu ancienne méthode de faire la même chose.
str.split est un peu plus efficace (puisque vous n'avez pas à importer la chaîne de module ou de rechercher des noms de ça), mais pas suffisamment pour faire une énorme différence si vous préférez chaîne.split.
OriginalL'auteur Jason Baker