簡體   English   中英

Python對象名稱和交互式解釋器

[英]Python object names and the interactive interpreter

當我定義一個類並創建一個實例時,在外殼中輸入實例名稱將返回一個內存位置。 在那里不足為奇,但是沒有人知道如何以這樣一種方式定義類,即將其名稱輸入外殼程序實際上將返回除內存位置以外的其他內容嗎?

例:

>> import numpy as np
>> foo = np.array([1,2,3])
>> foo
>> array([1, 2, 3])

如果我能得到類似的東西,那就太好了。

這是__repr__方法的用途:

>>> class point(object):
...     def __init__(self, x, y):
...         self.x = x
...         self.y = y
...         
...     def __repr__(self):
...         return "point(%d, %d)" % (self.x, self.y)
>>> x = point(3, 4)
>>> x
point(3, 4)

在沒有自定義__repr__實現的情況下,您將確切看到問題中所描述的內容:

>>> class defaultPoint(object):
...     def __init__(self, x, y):
...         self.x = x
...         self.y = y  
... 
>>> p = defaultPoint(0, 3)
>>> p
<__main__.defaultPoint object at 0x16767b0>

您需要在類上定義__repr__方法。

默認情況下,我們為python類提供了magic方法,其中兩個魔術方法將幫助我們完成此操作,其中

__str__
__repr__

如果您使用repr ,就可以實現您想要的目標。 如果您使用str ,它將在使用print語句時返回您在該方法中返回的內容

請注意,您應該從這些方法中返回要顯示的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM