萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> Python檢測一個對象是否為字符串類的方法

Python檢測一個對象是否為字符串類的方法

   這篇文章主要介紹了Python檢測一個對象是否為字符串類的方法,即檢測是一個對象是否是字符串對象,本文還講解了一個有趣的判斷方法,需要的朋友可以參考下

  目的

  測試一個對象是否是字符串

  方法

  Python的字符串的基類是basestring,包括了str和unicode類型。一般可以采用以下方法:

   代碼如下:

  def isAString(anobj):

  return isinstance(anobj,basestring)

  不過以上方法對於UserString類的實例,無能無力。

   代碼如下:

  In [30]: b=UserString.UserString('abc')

  In [31]: isAString(b)

  Out[31]: False

  In [32]: type(b)

  Out[32]:

  Python中常用的鴨子判斷法:如果它走路像鴨子,叫聲像鴨子,就可以認為它是鴨子了。

  代碼如下:

  def isStringLike(anobj):

  try:

  anobj.lower() + anobj + ' '

  except:

  return False

  else:

  return True

  測試結果如下:

   代碼如下:

  >>> import UserString

  >>> b=UserString.UserString('abc')

  >>> isStringLike(b)

  True

  >>>

  關於風格

  根據自己的語氣去執行任務,在此過程中檢測並處理由於不匹配產生的所有錯誤和異常。這種處理方式稱為:

   代碼如下:

  EAFP:It's easier to ask forgiveness than permission.

  try/except是保證該風格的關鍵工具。

  八卦一下,關於UserString類

  對於2.X版本:Python文檔中提到,如果不涉及到2.2以前的版本,請考慮直接使用str類型來代替UserString類型。

  對於3.X版本:該模塊已經移到collection模塊中。

  該類主要有兩種方法:

   代碼如下:

  class UserString.UserString([sequence])

  具體使用前面已經舉例,注意可以使用str()轉化為str類型

  代碼如下:

  class UserString.MutableString([sequence])

  字符串也可以變哦!Look here:

  代碼如下:

  a=UserString.MutableString('abc')

  a[0]='c'

  In [10]: a

  Out[10]: 'cbc'

  Python文檔上有行黑體字,原來已經是棄用的方法,3.0就沒有了:

  代碼如下:

  Deprecated since version 2.6: The MutableString class has been removed in Python 3.0.

copyright © 萬盛學電腦網 all rights reserved