Python內建函式str 和repr

2021-06-25 07:14:17 字數 1394 閱讀 8196

內建函式str()和repr() (representation,表達,表示)或反引號操作符(``)可以方便地以字串的方式獲取物件的內容、型別、數值屬性等資訊。

str()函式得到的字串可讀性好(故被print呼叫)

repr()函式得到的字串通常可以用來重新獲得該物件,通常情況下 obj==eval(repr(obj)) 這個等式是成立的。這兩個函式接受乙個物件作為其引數,返回適當的字串。

事實上repr()和``做一樣的事情,返回乙個物件的「官方」字串表示。其結果絕大多數情況下(不是所有)可以通過求值運算(內建函式eval())重新得到該物件。

str()則不同,它生成乙個物件的可讀性好的字串表示,結果通常無法用eval()求值,但適合print輸出。

如下例:?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

>>>classd(object):

...     def __str__(self):

...return"a __str__"

...     def __repr__(self):

...return"a __repr__"

...

>>> dr = d()

>>> print dr

a __str__

>>> dr

a __repr__

>>>"%s"% dr

'a __str__'

>>>"%r"% dr

'a __repr__'

為什麼有了repr()還需要``?

python中,有的操作符和函式是做同樣的事情,原因是某些場合下函式會比操作符更適合使用,比如函式物件可作為引數傳遞。雙星號(**)乘方運算和pow()內建函式都返回x的y次方.

內建函式 str

str 將資料強制轉型為字串。每種資料型別都可以強制轉型為字串。str 1 1 str 1,2,3,4 1,2,3,4 str types 對於簡單的資料型別比如整型,你可以預料到 str 的正常工作,因為幾乎每種語言都有乙個將整型轉化為字串的函式。然而 str 可以作用於任何資料型別的任何物件。這...

str 內建函式

字串查詢 find,index,rfind 右查詢 lfind 左查詢 find 查詢字串是否包含某個字串,返回第一次發現的位置,找不到時返回 1 index 與find幾乎相同,但是找不到值時,返回錯誤 判斷類的函式 此函式特點一般是is開頭 isalpha 判斷是否是字母,需要注意兩點,1 此函...

Python class內建函式 str

當我們定義乙個類 class field def init self,name self.name name field field liang print field main field instance at0x10c011d40 要怎麼樣才能輸出物件的實際內容呢,我們使用str函式 clas...