是否可以使一个类的实例可调用

时间:2018-06-28 13:20:38

标签: python class oop

我想直接调用一个类的实例,

示例-

class A(Object):
    def __init(self,temp):
        super(A, self).__init__()
        self.val = temp

    def get_val(self):
        return self.val

现在,创建一个实例-

my_var = A('something')
print(my_var.get_val())

但是我只想使用-

打印值
print(my_var) or print(my_var())

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以覆盖__str__()方法。直接打印对象引用时,它在内部调用obj.__str__()。因此,您可以通过重写上述方法来实现所需的功能。

class A():
    def __init__(self,temp):
        self.val = temp

    def get_val(self):
        return self.val


    def __str__(self):
        return self.get_val()


my_var = A('something')
print my_var

输出:

something