python - 是否可以为python中的类设置默认方法?

标签 python class methods

<分区>

假设你有一个 python 类。我们称它为 C。假设您在脚本的某处或交互模式下创建了它的一个实例:c=C()

是否可以在类中有一个“默认”方法,以便在您引用实例时调用该默认方法?

class C(object):
    def __init__(self,x,y):
        self.x=x
        self.y=y
    def method0(self):
        return 0
    def method1(self):
        return 1
    def ...
        ...
    def default(self):
        return "Nothing to see here, move along"

等等。

现在我以交互模式创建类的一个实例,并引用它:

>>> c=C(3,4)
>>> c
<__main__.C object at 0x6ffffe67a50>
>>> print(c)
<__main__.C object at 0x6ffffe67a50>
>>>

如果您自己引用对象,是否有可能调用一个默认方法,如下所示?

>>> c
'Nothing to see here, move along'
>>> print(c)
Nothing to see here, move along
>>>

最佳答案

您正在寻找的是 __repr__方法,它返回类实例的字符串表示形式。您可以像这样覆盖该方法:

class C:
    def __repr__(self):
        return 'Nothing to see here, move along'

这样:

>>> c=C()
>>> c
Nothing to see here, move along
>>> print(c)
Nothing to see here, move along
>>>

关于python - 是否可以为python中的类设置默认方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602648/

相关文章:

python - 如何优化 C++ 以将文件逐行读取到 vector 中?

java - 仅当方法位于同一类中时才存储值

java - 在java中的项目数组中查找最昂贵的项目

Java测试文件LocalDate

java - 如何创建一种方法来计算从 4+ 方法中获取变量来进行计算?

python - BeautifulSoup4 的 Insert_after() 函数意外工作

python - python 的 BaseHTTPRequestHandler 中 connfd(在 C 中创建的套接字)的等价物在哪里

python - 从路由器后面制作一个公开可用的 TCPServer

java - 无法让我的 Java 类工作

java - 无法理解Java类的定义