重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Python作为一门面对对象的语言,那么肯定也是有多态这个属性的,这里主要跟C++的多态做一下类比
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联公司坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站制作、成都网站建设、微信公众号开发、电商网站开发,微信小程序,软件按需制作网站等一站式互联网企业服务。先看下面的代码
这里可以看到,Child,Child2都是Parent的子类,他们分别重写了父类的print_func函数,因此可以看到下面的结果
这是单独打印每个对象来得到的结果,下面开始看Python的多态
这里可以看到,print_who这个函数只是将obj对象的print_func函数调用打印了一下。这里和C++的多态都是区别不大的。
但是Python的多态比C++的更要牛逼一些,比如下面这个类
这时候noChild这个类跟Parent没有半点关系,那么我们调用print_who还能打印出来东西吗?
没错,你真的没有看出,这个非子类的对象,只是因为有一个print_func函数,就能通过print_who来进行打印,是不是很神奇??
这就是Python与C++在多态上大的区别,Python只要你有一模一样的函数存在,那么他就可以按照多态的处理方式来给你处理。在有些书中,这个方法被称为“鸭子模型”。
欢迎添加QQ群一起学习
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。