【python】类的专有方法

发布时间 2023-06-01 21:47:36作者: 苏格拉底的落泪

__str__

概述:

  • 在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法
  • 当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
  • __str__方法需要返回一个字符串,当做这个对象的描写
class Cat:
    """定义一个猫类"""
 
    def __init__(self, new_name, new_age):
        """在创建完对象之后 会自动调用, 它完成对象的初始化的功能"""
        self.name = new_name
        self.age = new_age 

    def __str__(self):
        """返回一个对象的描述信息"""
        return "名字是:%s , 年龄是:%d" %(self.name, self.age)
 
    def eat(self):
        print("%s在吃鱼...." %self.name)
 
    def drink(self):
        print("%s在喝可乐..." %self.name)
 
 
tom = Cat("汤姆", 30)
print(tom)

输出:

名字是:汤姆 , 年龄是:30

 

__len__

如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。

class Students(object):
    def __init__(self, *args):
        self.names = args
    def __len__(self):
        return len(self.names)

ss = Students('Bob', 'Alice', 'Tim')
print(len(ss))