2011-01-14 38 views
5

Python文檔從http://docs.python.org/library/string.htmlPython的錯誤, 「 '模塊' 對象沒有屬性 'lstrip'」

string.lstrip(s[, chars])

返回移除前導字符串的副本。如果省略字符None,則刪除空白字符。如果給定而不是None,字符必須是字符串;該字符串中的字符將調用此方法對字符串的開頭被剝離。」

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

缺少什麼我在這裏?

+0

它應該給你TypeError,因爲1不是char。 – Rozuur 2011-01-14 11:14:35

回答

3

對於Python 2.6以下的作品...

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

對於Python 3.0以前的解決方案是行不通的,因爲string.lstrip在2.4棄用,在3.0移除。

另一種方式是做:

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

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

我認爲這是常見的廣泛使用它。

編輯

在Python 3.0加string.lstrip棄用 - 感謝這個答案是提到的意見。

+0

你的2。6代碼無關緊要,你不覺得嗎? – SilentGhost 2011-01-14 11:16:26

+1

此外,`string.lstrip`並不是正確的方法,因爲它已經在Python 3中被棄用了 – user225312 2011-01-14 11:18:27

+0

您是否指我提到Python 2.6的事實?或第一塊代碼? – 2011-01-14 11:18:40

0

這已更改爲Python 3.x.

您引用的方法僅適用於字符串實例,而不適用於模塊string。所以你不需要導入任何東西:

assert 'a ' == ' a '.lstrip() 
1

你已經找到了Python 2.7.1版本的文檔(看看屏幕的左上角)。 string函數在Python 2.x中被棄用,支持strunicode方法,並在Python 3.x中完全刪除。請參閱3.x文檔here

相關問題