[英]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.