默认返回类属性

时间:2019-01-09 17:40:09

标签: python

使用简单的类时,如何在不使用任何括号的情况下默认返回某个属性?

例如在下面,有没有一种方法不必一直输入()?

class Person():

    def __init__(self):
        self.name = 'Bishonen'

    def __call__(self, *args, **kwargs):
        return self.name

c = Person()
print(c) # returns the object
print(c()) # actually returns the name. 

1 个答案:

答案 0 :(得分:0)

一种方法是定义__str__()。打印时,您将获得所需的值。

class Person:
    def __init__(self):
        self.name="John"
    def __str__(self):
        return self.name

p=Person()
print(p)

也可以使用__repr__()来避免需要print()

class Person:
    def __init__(self):
        self.name="John"
    def __repr__(self):
        return self.name

p=Person()
p