一种常见的情况,根据参数的值来做相应处理。比如,同一个网页,对于管理员来说,某地方显示为编辑按钮,但对于一般用户则不显示。这个逻辑很容易实现,只需用if else实现即可。
一种场景,大学开学第一天。cs(computer science)专业的学生和es(software engineering)专业的同学共享辅导员。辅导员需要把这两个专业的学生都介绍一遍。如下,代码中实现了一个抽象student类。A_cs, B_se都继承自Student。还实现了一个Instructor类(辅导员类)。Instructor实现了introduce方法。此方法作用是对student对象进行介绍。根据不同专业的student,进行介绍。先看使用if else的实现,代码如下
import abc
class Student(object):
__metaclass__ = abc.ABCMeta
def __init__(self, *args, **kwargs):
self.name = args[0]
self.hobby = args[1]
self.hometown = args[2]
class A_cs(Student):
def __init__(self, *args, **kwargs):
super(A_cs, self).__init__(*args, **kwargs) # 复用父类方法。super(类名,self).方法名
class B_se(Student):
def __init__(self, *args, **kwargs):
super(B_se, self).__init__(*args, **kwargs)
class Instructor(