2011-01-14 47 views
5

Python belgelerine " 'modülü' nesne hiçbir özelliği 'ni lstrip' vardır":Python hata, <a href="http://docs.python.org/library/string.html" rel="nofollow">http://docs.python.org/library/string.html</a> den

string.lstrip(s[, chars])

Return kaldırıldı önde gelen karakterler ile dize bir kopyası. chars belirtilmezse veya None ise, boşluk karakterleri kaldırılır. None, no'lu no'lu karakterlerin verilmesinin bir dize olması gerekir; dizesindeki karakterler bu yöntem üzerinde denir dizinin başlangıcından itibaren şeritli."

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' 
>>> 

Burada ne eksik?

+0

size TypeError vermelidir, 1 değil char. – Rozuur

cevap

7

Belgeler olan piton 3.1 kullanıyorsanız iyi doc görünmüyor: http://docs.python.org/py3k/index.html

string fonksiyonları Py3k çıkarıldı ve gerek Şimdi str methods kullanın:

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

Not, dokümantasyon söylediği gibi, chars bir dize olmalıdır söyledi. Tam sayı değil.

+0

ve dize modülü python 2.5'den beri kullanımdan kaldırıldı – Ant

+0

@Ant: dize modülü gayet iyi, yalnızca bazı işlevler kullanımdan kaldırıldı. – SilentGhost

+0

tamam, bunun çoğu;) – Ant

3

Python 2.6 aşağıdaki işleri ...

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

Python 3.0 için, önceki çözelti string.lstrip 2.4'te kaldırıldı ve 3.0 uzaklaştırıldı yana çalışmaz.

bir başka yolu yapmaktır:

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

yoksa ortak yaygın bunun kullanmak olduğunu düşünüyorum

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

.

Python 3.0 string.lstrip arasında itirazın eklemek için Düzen - söz bu cevap üzerine yorumlar için teşekkürler.

+0

2'niz.6 kod ilgisiz, sence de öyle değil mi? – SilentGhost

+1

Ayrıca, 'string.lstrip', Python 3'de kullanımdan kaldırıldığı için bunu yapmanın doğru yolu değildir. – user225312

+0

Python 2.6'dan söz ettiğim gerçeği mi kastediyorsunuz? ya da ilk kod bloğu? –

0

Sen doğru doktor burada burada bulunur Py3k sürümü için http://docs.python.org/py3k/library/string.html

+0

neden -1 cevabım succint olduğunu biliyorum ama yanlış değil –

+0

beni değil ama muhtemelen Verdiğiniz URL, okumak istediği "str" ​​yöntemlerine değil, "string" modülüne yönlendirir. –

0

Bu, Python 3.x için değiştirildi.

Başvuruda bulunduğunuz yöntem yalnızca string modülünü değil, dize örnekleri için kullanılabilir. Yani hiçbir şey ithal etmek gerekmez:

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

Bir şey almanıza gerek kalmaması için ** 2.x ** olarak değiştirildi. –

1

Sen dokümanlar Python 2.7.1 sürümü (ekranın sol üst köşesinde bakmak) bulduk. string işlevleri, str ve unicode yöntemleri lehine Python 2.x'de kullanımdan kaldırılmış ve Python 3.x'te tamamen kaldırılmıştır. 3.x docs here'a bakın.

İlgili konular