zoukankan      html  css  js  c++  java
  • 面向对象魔术方法之__str__()方法

    类型判断要使用type或isinstance, 并不能通过判断print输出是否带引号来判断输出值的类型。

    str()与repr()都是python中的内置函数,是直接用来格式化字符串的函数;

    而__str__与__repr__ 是在类(对象)中对类(对象)本身进行字符串处理。 注意:__repr__在交互式python环境中产生作用

    __str__:返回一个可以用来表示对象的可打印的友好的字符串。

    存在下面三种情况:

    对字符串,返回本身 
    没有参数,则返回空字符串
    对类,可通过__str__() 成员控制其行为。该成员不存在,则使用其 __repr__() 成员

    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        # def __str__(self):
        #     return self.name
    
    
    p = Person('tom', 19)
    print(p)
    

    单纯打印对象名称,出来的是一个地址,地址对于开发者来说没有太大意义

    如果想在打印对象名的时候,能够给开发者更多一些信息量

    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __str__(self):
            return '姓名是:' + self.name + ',年龄:' + str(self.age)
    
    
    p = Person('tom', 19)
    print(p)
    

     触发时机:打印对象名时,自动触发去调用__str__里面的内容

    注意:一定要在__str__方法中添加return, return后面的内容就是打印对象看到的内容

    总结:魔术方法:普通方法需要调用!而魔术方法是在特定时刻自动触发。

    重点:

    __init__(创建完空间后,调用的第一个方法),__str__

    了解:

    __new__    作用:开辟空间

    __del__      作用:没有指针引用的时候会调用

    __call__      作用:想不想将对象当成函数用


    参考链接:
    https://blog.csdn.net/Mr_fengzi/article/details/93360845

  • 相关阅读:
    Java I/O的典型使用方式
    搜索--hiho 骑士问题
    编程之美--水王(找出出现超过1/2的数)
    深入理解java虚拟机之类文件结构以及加载
    【转载】Java JVM 运行机制及基本原理
    整数的划分总结(转)
    java静态方法和非静态方法
    mongodb 运行错误总结
    MongoDb windows环境安装,附百度云链接
    JAVA解析Json数据
  • 原文地址:https://www.cnblogs.com/GumpYan/p/12370650.html
Copyright © 2011-2022 走看看