2011-01-14 14 views
5

documentación de Python desde http://docs.python.org/library/string.html:error de Python, "objeto 'módulo' no tiene atributo 'lstrip'"

string.lstrip(s[, chars])

devolver una copia de la cadena con los caracteres iniciales eliminados. Si se omite caracteres o None, se eliminan los caracteres de espacio en blanco. Si se da y no None, caracteres debe ser una cadena; los caracteres de la cadena serán eliminados del principio de la cadena de este método se llama el ".

Python 3.1.2 (r312:79360M, Mar 24 2010, 01:33:18) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 
Type "copyright", "credits" or "license()" for more information. 
>>> import string 
>>> x = 'Hi' 
>>> string.lstrip(x,1) 
Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    string.lstrip(x,1) 
AttributeError: 'module' object has no attribute 'lstrip' 
>>> 

Qué me estoy perdiendo aquí?

+0

debería darle TypeError ya que 1 no es char. – Rozuur

Respuesta

7

Documentación para la versión py3k se encuentra aquí: http://docs.python.org/py3k/index.html

string funciones se eliminaron en py3k y hay que utilizar ahora str methods:

>>> x = 'Hi' 
>>> x.lstrip('H') 
'i' 

Tenga en cuenta, que como dice la documentación, charsdebe ser una cadena. No es un número entero.

+0

y el módulo de cadena está en desuso debido a que python 2.5 – Ant

+0

@Ant: el módulo de cadena está bien, solo se detuvieron algunas funciones. – SilentGhost

+0

bien, la mayor parte;) – Ant

3

Para Python 2.6, las siguientes obras ...

import string 
x = u'Hi' #needs to be unicode 
string.lstrip(x,'H') #second argument needs to be char 

Para Python 3.0 la solución anterior no funcionará desde string.lstrip desfasada y en 2,4 y se retira en 3.0.

Otra forma es hacer:

"Hi".lstrip('H') #strip a specific char 

o

" Hi".lstrip() #white space needs no input param 

que creo que es el común uso amplio de la misma.

Editar

Para añadir desaprobación de string.lstrip en Python 3.0 - gracias por los comentarios de esta respuesta que lo mencionó.

+0

tu 2.El código 6 es irrelevante, ¿no crees? – SilentGhost

+1

Además, 'string.lstrip' no es la manera correcta de hacerlo, ya que ha quedado obsoleto en Python 3 – user225312

+0

¿Quiere decir que menciono Python 2.6? o el primer bloque de código? –

0

que no se ven bien doc está utilizando Python 3.1 el doc derecha es aquí http://docs.python.org/py3k/library/string.html

+0

por qué -1 sé que mi respuesta es succinta pero no equivocada –

+0

yo no, pero probablemente porque el La URL que usted dio conduce al módulo 'string', no a los métodos' str' sobre los que debe leer. –

0

Esto se cambió para Python 3.x.

El método al que se refiere solo está disponible para instancias de cadena, no el módulo string. Así que no es necesario importar nada:

assert 'a ' == ' a '.lstrip() 
+0

Se cambió en ** 2.x ** para que no necesitara importar nada. –

1

Usted ha encontrado la versión de Python 2.7.1 de la documentación (busque en la esquina superior izquierda de la pantalla). Las funciones string se desaprobaron en Python 2.x a favor de los métodos str y unicode, y se eliminaron por completo en Python 3.x. Consulte los documentos 3.x here.

Cuestiones relacionadas