• 面向对象魔术方法之__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

  • 相关阅读:
    yii2.0 干货
    VLD opcodes 在线查看
    定长顺序串的实现
    循环队列
    oracle--DG初始化参数
    oracle --工具 ODU
    Oracle RAC 修改SPFILE路径 文件查看
    oracle 错误 ORA-00020问题解析
    oracle 错误 TNS-01190与oracle 登入没反应操作
    Oracle--RMAN Recover 缺失的归档操作
  • 原文地址:https://www.cnblogs.com/GumpYan/p/12370650.html
Copyright © 2020-2023  润新知