Python檢測(cè)一個(gè)對(duì)象是否為字符串類的方法
目的
測(cè)試一個(gè)對(duì)象是否是字符串
方法
Python的字符串的基類是basestring,包括了str和unicode類型。一般可以采用以下方法:
def isAString(anobj):
return isinstance(anobj,basestring)
不過(guò)以上方法對(duì)于UserString類的實(shí)例,無(wú)能無(wú)力。
In [30]: b=UserString.UserString('abc')
In [31]: isAString(b)
Out[31]: False
In [32]: type(b)
Out[32]: <class 'UserString.UserString'>
Python中常用的鴨子判斷法:如果它走路像鴨子,叫聲像鴨子,就可以認(rèn)為它是鴨子了。
def isStringLike(anobj):
try:
anobj.lower() + anobj + ' '
except:
return False
else:
return True
測(cè)試結(jié)果如下:
>>> import UserString
>>> b=UserString.UserString('abc')
>>> isStringLike(b)
True
>>>
關(guān)于風(fēng)格
根據(jù)自己的語(yǔ)氣去執(zhí)行任務(wù),在此過(guò)程中檢測(cè)并處理由于不匹配產(chǎn)生的所有錯(cuò)誤和異常。這種處理方式稱為:
EAFP:It's easier to ask forgiveness than permission.
try/except是保證該風(fēng)格的關(guān)鍵工具。
八卦一下,關(guān)于UserString類
對(duì)于2.X版本:Python文檔中提到,如果不涉及到2.2以前的版本,請(qǐng)考慮直接使用str類型來(lái)代替UserString類型。
對(duì)于3.X版本:該模塊已經(jīng)移到collection模塊中。
該類主要有兩種方法:
class UserString.UserString([sequence])
具體使用前面已經(jīng)舉例,注意可以使用str()轉(zhuǎn)化為str類型
class UserString.MutableString([sequence])
字符串也可以變哦!Look here:
a=UserString.MutableString('abc')
a[0]='c'
In [10]: a
Out[10]: 'cbc'
Python文檔上有行黑體字,原來(lái)已經(jīng)是棄用的方法,3.0就沒(méi)有了:
Deprecated since version 2.6: The MutableString class has been removed in Python 3.0.
相關(guān)文章
Python虛擬環(huán)境的創(chuàng)建和使用詳解
這篇文章主要給大家介紹了關(guān)于Python虛擬環(huán)境的創(chuàng)建和使用的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類
今天小編就為大家分享一篇利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python畫圖小案例之多啦A夢(mèng)叮當(dāng)貓超詳細(xì)注釋
在看了很多Python教程之后,覺(jué)得是時(shí)候做點(diǎn)什么小項(xiàng)目來(lái)練練手了,于是想來(lái)想去,用python寫了一個(gè)童年記憶的卡通人物哆啦A夢(mèng),代碼注釋無(wú)比詳細(xì)清楚,快來(lái)看看吧2021-09-09openCV入門學(xué)習(xí)基礎(chǔ)教程第二篇
人臉識(shí)別,物體檢測(cè),OpenCV是基石,下面這篇文章主要給大家介紹了關(guān)于openCV入門學(xué)習(xí)基礎(chǔ)教程的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Python range與enumerate函數(shù)區(qū)別解析
這篇文章主要介紹了Python range與enumerate函數(shù)區(qū)別解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Python 由字符串函數(shù)名得到對(duì)應(yīng)的函數(shù)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Python 由字符串函數(shù)名得到對(duì)應(yīng)的函數(shù)(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Django實(shí)戰(zhàn)之用戶認(rèn)證(用戶登錄與注銷)
這篇文章主要介紹了Django實(shí)戰(zhàn)之用戶認(rèn)證(用戶登錄與注銷),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python 如何操作 SQLite 數(shù)據(jù)庫(kù)
這篇文章主要介紹了Python 如何操作 SQLite 數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08利用Seaborn繪制20個(gè)精美的pairplot圖
本文記錄的使用seaborn繪制pairplot圖,主要是用來(lái)顯示兩兩變量之間的關(guān)系(線性或非線性,有無(wú)較為明顯的相關(guān)關(guān)系等),感興趣的可以了解一下2022-07-07