[英]How to use object name as variable in python
我怎樣才能定義一個類,使對象名可以用作變量? 我正在編寫一個數值分析類,它只包含一個numpy數組作為即時變量和許多數學運算。 為了方便和可讀性,僅僅通過它的對象名訪問numpy數組會很不錯。 例如,可以直接調用numpy數組(或來自matplotlib,pandas等許多其他包的對象),
import numpy as np
foo = np.array([[1,2],[3,4]])
print foo
這就像我所擁有的(省略了定義方法)
import numpy as np
class MyClass():
def __init__(self, input_array):
self.data = np.array(input_array)
foo = MyClass([[1,2],[3,4]])
print foo
print foo.data
這將foo打印為foo.data的指針和內容
<__main__.MyClass instance at 0x988ff0c>
[[1 2]
[3 4]]
我在構造函數中嘗試了self = np.array(input_array)
,但它仍然給出了一個地址。 我在想像重載對象名稱,但我找不到任何信息。
如果不可能,那么這些包怎么能實現呢? 我試着讀一些numpy和pandas的源代碼。 但作為python的新手,我幾乎不可能在那里找到答案。
編輯
感謝__str__
和__repr__
。建議使用__str__
和__repr__
。 但我意識到我真正需要的是繼承numpy.ndarray甚至是pandas DataFrame,以便繼承所有數學函數。 我發現這兩個鏈接對於ndarray和DataFrame非常有用, 可以為我的界面調整__init__
調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.