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

  • 相关阅读:
    计算机网络知识
    数据库知识
    操作系统知识
    计算机硬件基础知识
    计算机科学基础知识
    2019下半年软件设计师考试大纲
    软件设计师补题(2008下半年上午题)
    软件设计师补题(2008上半年上午题)
    测试复盘3
    测试复盘2
  • 原文地址:https://www.cnblogs.com/GumpYan/p/12370650.html
Copyright © 2011-2022 走看看