zoukankan      html  css  js  c++  java
  • python中的__call__和__repr__魔术方法

    __call__:实现了__call__的对象是可调用的

    __repr__:实现了__repr__的对象可以输出对象的相应属性信息

    比如说:

    class Student:
      def __init__(self,id,name):
        self.id=id
        self.name=name
      def __repr__(self):
        return 'id='+str(self.id)+', name='+self.name
      def __call__(self):
        print("I can be called")
        print(f'my name is {self.name}')

    首先创建一个对象:

    stu=Student(id-1,name="tom")

    判断该对象是否是可调用的:

    callable(stu)

    输出:True

    那么,就可以使用如下方式调用该对象:

    stu()

    输出:

    I can be called

    my name is 张三

    而对于实现了__repr__魔术方法的类而言,我们可以使用如下方式打印其相关的属性信息:

    print(stu)

    输出:

    id=1, name=张三

    需要注意的是,我们需要将self.id转换成str的格式,不然会报错。也就是说__repr__实际上是将对象以字符串的格式进行输出。

    同样的,我们也可以使用ascii函数将对象以ascii的格式进行输出:

    ascii(stu)

    输出;

    'id=1, name=\u5f20\u4e09'

  • 相关阅读:
    golang的server push
    go context学习
    go struct{} 空结构体的特点和作用
    Java基本语法--关键字&标识符
    初识Java
    Dos常用命令
    Markdown进阶教程
    Markdown基础教程
    Navicat Premium15安装与激活
    JDK的安装与环境配置(Windows10)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12786858.html
Copyright © 2011-2022 走看看