Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのstr()関数とrepr()関数の説明


Pythonの公式ドキュメントによると、__ repr__はオブジェクトの「公式」文字列表現を検索するために使用され、__str__はオブジェクトの「非公式」文字列表現を検索するために使用されます。 printステートメントとstr()組み込み関数は、__ str__を使用してオブジェクトの文字列表現を表示し、repr()組み込み関数は__repr__を使用してオブジェクトを表示します。 2つの方法が実際に何をするかを理解するために例を見てみましょう。

日時オブジェクトを作成しましょう-

>>> import datetime
>>> today = datetime.datetime.now()
When I use the built-in function str() to display today:
>>> str(today)
'2018-01-12 09:21:58.130922'
ユーザーが日付と時刻を理解できるように、日付が文字列として表示されていることがわかります。次に、組み込み関数repr()-

をいつ使用するかを見てみましょう。
>>> repr(today)
'datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)'

これも文字列を返しましたが、文字列は日時オブジェクトの「公式」表現でした。つまり、この「公式」文字列表現でオブジェクトを再構築できます-

>>> eval('datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)')
datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)
>

eval()組み込み関数は文字列を受け入れ、それを日時オブジェクトに変換します。

したがって、一般に、コーディングするすべてのクラスには__repr__が必要であり、datetimeの場合のように、オブジェクトの文字列バージョンがあると便利だと思われる場合は、__str__関数を作成します。


  1. Pythonで文字列から日付を抽出する方法は?

    文字列を抽出するには、文字列に含めることができる日付の形式を知っている必要があります。正規表現を使用して日付を抽出し、「datetime.datetime.strptime」を使用して日付を解析するだけです。たとえば、YYYY-MM-DDの形式の文字列に日付がある場合は、次のコードを使用してこの日付を抽出および解析できます。 例 import re, datetime s = "I have a meeting on 2018-12-10 in New York" match = re.search('\d{4}-\d{2}-\d{2}', s) date

  2. Pythonで区切り文字strによって文字列を分割する方法は?

    PythonのStringクラスには、オプションの引数として区切り文字を受け取るsplit()というメソッドがあります。デフォルトの区切り文字は空白です。次のように使用できます: >>> 'aa-ab-ca'.split('-') ['aa', 'ab', 'ca'] >>> 'abc mno rst'.split(' ') ['abc', 'mno', 'rst'] この操作に正規表現を使用するこ