• Python中类的神奇方法


    像 __init__() 这样的方法在 Python 的类中被称为 神奇方法(或魔术方法),它们的特征是被 双下划线 所包裹。下面再介绍一个神奇方法——__str__()。

    在介绍 __str__() 之前我们先看一段代码:

    class Human:
      arms = 2
      legs = 2
      hair = '各种颜色的头发'
    
      def walk(self):
        print('直立行走')
    
      def speak(self):
        print('说着各式各样的语言')
    
    human = Human()
    
    print(human)
    # 输出:<__main__.Human object>

    我们可以看到,直接打印类的实例结果是 <__main__.Human object>,__main__.Human 表示它是 Human 类的实例,object 表示它是一个对象。但这样我们还是不知道 human 这个实例到底是什么。
    当然可以用添加intro()的方法,如下:
      def intro(self):
        print('人类有%d条胳膊%d条腿' % (self.arms, self.legs))
    
    # 类的实例化
    human = Human()
    
    human.intro()

    但是这样有些麻烦,这时 __str__() 方法就闪亮登场了 ✨:
    class Human:
      arms = 2
      legs = 2
      hair = '各种颜色的头发'
    
      def __str__(self):
        return '人类有%d条胳膊%d条腿' % (self.arms, self.legs)
    
      def walk(self):
        print('直立行走')
    
      def speak(self):
        print('说着各式各样的语言')
    
    human = Human()
    
    print(human)
    # 输出:人类有2条胳膊2条腿

    再举个例子:

    class Human:
      def __init__(self, name, heads, arms):
        self.name = name
        self.heads = heads
        self.arms = arms

      def __str__(self):
        return '我叫{},我有{}头{}臂'.format(self.name, self.heads, self.arms)

    nezha = Human('哪吒', 3, 6)
    print(nezha)

     


  • 相关阅读:
    Tensorboard返回的网址打不开问题
    css的常用知识点
    js的基础知识
    html的常用标签
    python的进程与线程
    python的socket的学习
    python的异常处理
    python类的相关知识第二部分
    python类的相关知识第一部分
    python装饰器的学习笔记
  • 原文地址:https://www.cnblogs.com/mingzhuqi/p/13264626.html
Copyright © 2020-2023  润新知