函数类的继承

一、继承的基本语法

在Python中,继承是一种面向对象编程的概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。

通过继承,子类可以重用父类的代码,并可以在不修改父类的情况下添加新的属性和方法,或者修改父类已经定义的属性和方法。这种机制提供了代码的可重用性以及层次结构的组织。

——————————————————————————————————————————

举个例子:

#这是直接用名字去继承
class My_father:#这相当于父类,此处不用加括号,也可以加上(object)
    def father(self):  #定义方法
        print('我是你的爸爸')

class my_son(My_father):#这是子类
    def son(self):
        My_father.father(self) #该步骤调用了父类的方法,从而打印出父类的结果

my_list=my_son()
my_list.son()

还可以通过 super().父类方法() 去继承,更加简洁

class My_father:#这相当于父类
    def father(self):  #定义方法
        print('我是你的爸爸')

class my_son(My_father):#这是子类
    def son(self):
        super().father()#

my_list=my_son()
my_list.son()

当需要完全继承父类时

class Father(object): # 父类
    def __init__(self,name,age):
        self.name= name
        self.age= age
    def myself(self):
        print('大家好!我是%s,今年%s岁'%(self.name,self.age))


class Son(Father):#子类
    pass#因为完全继承父类的属性和方法,用pass表示空
my_list=Son('zhang',18)#继承父类的同时,需要依次对参数传参
my_list.myself()#大家好!我是zhang,今年18岁

当需要部分继承,且需要增加子类自己的属性时

class Father(object): # 父类
    def __init__(self,name,age):
        self.name= name
        self.age= age
    def myself(self):
        print('大家好!我是%s,今年%s岁'%(self.name,self.age))


class Son(Father):#子类
    def __init__(self,name,age,lenth):#增加了子类自己的属性
        super().__init__(name,age)#调用父类的初始化方法
        self.lenth=lenth
    def myson(self):
        print('我身高{}'.format(self.lenth))

mylist=Son("zhang",18,180)
mylist.myself()#大家好!我是zhang,今年18岁
mylist.myson()#我身高180

完全继承, 所有的属性和方法都使用父类的, 子类是不需要任何创建

部分继承, 子类有自己特有的一些属性和方法,需要使用super进行继承并添加

不继承, 全部覆盖重写

二.多继承的相关知识

多继承是指一个类可以同时从多个父类继承属性和方法的能力。

在Python中,可以通过在类定义时同时列出多个父类来实现多继承。
使用多继承可以将多个不同的类的功能组合在一起,使得子类可以同时获得多个父类的特性。这样可以增加代码的复用性,提供更灵活的设计方式。

以下是一个示例代码,演示了多继承的概念:

class Parent1:#第一个类
    def method1(self):
        print("Method 1")

class Parent2:#第二个类
    def method2(self):
        print("Method 2")

class Child(Parent1, Parent2):  # 子类同时继承了 Parent1 和 Parent2
    pass

obj = Child()#  类的实例化 这样可以直接调用两个类的方法
obj.method1()  # 调用 Parent1 的方法
obj.method2()  # 调用 Parent2 的方法

三.函数类的魔法方法

add_是Python中的一个特殊方法,用于定义对象之间的加法操作。当使用加法运算符(+)来操作两个对象时,解释器会自动调用对象的add方法。

例如,如果我们有两个自定义类的对象,可以通过在类中实现add方法,定义它们之间的加法行为。

那么如何在自定义类中实现add方法呢?举个例子:

class all:
    def __init__(self,x,y):#始化该对象
        self.x=x
        self.y = y
    def __add__(self,other):
        allnum1=self.x+other.x
        allnum2=self.y+other.y
        return allnum1,allnum2 #返回,保留,值
       #return allnum1+allnum2 如果需要参数相加则可以这样

point1=all(1,2)
point2=all(3,4)
result=point1+point2 #此处的+,相当于调用上面return的内容
print(result)#(4, 6)
#print(result)#10 相当于x1+x2+y1+y2

call是一个Python中的特殊方法,它允许将一个类的实例像函数一样调用。

当调用一个类的实例时,Python会查找并调用该类中的call方法。这个方法可以接收任意数量的参数,并且可以返回任何类型的值。

举个例子:

class list:
    def __init__(self, x):
        self.x=x

    def __call__(self, y):
        self.y = y
        return self.x + self.y

sum=list(5)
sum2=sum(6)
print(sum2)#第一次传参给x,一次传参给y
print(sum.y)#y的值为6
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容