栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python自定义类模板

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python自定义类模板

class People:
    name =''
    age = 0
    _weight = 0
#     初始化函数,类似构造函数
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self.iter = 0
        _weight = w
        """
        真值判断:
        定义__bool__,使得外部可以判断实例是否为空,例: 1 if people1 else 2
        定义__len__,1.使得外部可以判断实例是否为空,如果同时定义了__bool__,则真值判断时不会执行它,例: 1 if people1 else 2
                    2.计算实例的长度
        """
    def __bool__(self):
        return bool(self.name)
    def __len__(self):
        return len(self.name)
    """
        lt 定义小于(<)比较逻辑,使得外部可以使用<符号来比较实例之间的大小        :例 people1 <  people2
        le 定义小于等于(<=)比较逻辑,使得外部可以使用<=符号来比较实例之间的大小。:例 people1 <= people2
        gt 定义大于(>)比较逻辑,使得外部可以使用<符号来比较实例之间的大小。      :例 people1 >  people2
        ge 定义大于等于(>=)比较逻辑,使得外部可以使用<符号来比较实例之间的大小。 :例 people1 >= people2
    """
    def __lt__(self,other):
        return self.age < other.age
    def __le__(self,other):
        return self.age <= other.age
    def __gt__(self,other):
        return self.age > other.age
    def __ge__(self,other):
        return self.age >= other.age
    def __eq__(self,other):
        return self.age == other.age
    """
    定义in和not in 操作,使得外部可以通过in,not in 查看一个对象是否在另一个对象里:例:'run' in people1
    """
    def __contains__(self,item):
        return item in self.name
    """
    使得外部可以对实例对象进行哈希。例:hash(people1)
    注意:
        对于一个可变的对象,不应该支持哈希,因为如果可变,实例的每一次改变,都需要重新生成hash表。开销大
    """
    def __hash__(self):
        return hash(self.name)
    """
    迭代器的实现,使得外部可以用for对实例进行循环: for i in people1
    """
    def __iter__(self):
        return self
    def __next__(self):
        if self.iter < len(self.name):
            ret = self.name[self.iter]
            self.iter += 1
            return ret
        else:
            raise StopIteration
        
    def speak(self):
        print("{0} 说:我{1}岁。".format(self.name,self.age))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号