重载类的特殊方法

来源:互联网 发布:耐克淘宝官方旗舰店 编辑:程序博客网 时间:2024/06/05 16:36

1.在Python中,类中有一些以两条下划线开始并且以两条下划线结束的方法,称之为为的专有方法,专有方法时针对类的特殊操作的一些方法,

代码示例如下:

class Book:
    def __init__(self,name="Python从入门到精通"):
        self.name=name
    def __add__(self, other):
        return self.name+" "+other.name
    def __len__(self):
        return len(self.name)
if __name__=="__main__":
    booka=Book()
    bookb=Book("Java从入门到精通")
    print("len(booka):",len(booka))
    print("len(bookb):",len(bookb))
    print(booka+bookb)

2.鸭子类型 与多态

class Duck:
    def __init__(self,name="duck"):
        self.name=name
    def quack(self):
        print("嘎嘎嘎")
class Cat:
    def __init__(self,name="cat"):
        self.name=name
    def quack(self):
        print("喵喵喵...")
class Tree:
    def __init__(self,name="tree"):
        self.name=name
def duck_demo(obj):
    obj.quack()
if __name__=="__main__":
    duck=Duck()
    cat=Cat()
    tree=Tree()
    duck_demo(duck)
    duck_demo(cat)
    duck_demo(tree)

0 0