17.面向对象的写法

面向对象:

我这里做几个重要的知识点归纳起来:

1.创建单个类和多个类

2.初始化类

3.类里面函数的调用以及参数传递

4.类模块封装的调用

关于类的介绍:

1.物有属性 其相同具有的属性归为类

在我们的认知中为什么能很快的区分鸡和鸭呢?

是因为我们在意识里已经对他们分类了,我们认为鸡有鸡冠,不能游泳,而鸭没有这两项功能,我们二者区分开来。

2.父类与子类

这两者就像爸爸跟儿子的关系,俺爸生了你,那么你就会遗传俺爸的基因,简而言之,就是你们俩会具备某些一致的

东西,在程序里的思维也是这样,子类在遗传父类的过程中叫‘继承’

我们在代码中来看看实现方式:

class Test(object):
    def __init__(self):
        pass
    print('我是最大的Test类')

def main():
    t = Test()
    print(t)

if __name__ == '__main__':
    main()

将这段代码拆分为三段:

1.标准的开始程序的写法:if__name__ == '__main__':

2.调用main()函数

3.将类付给变量t,那么t就可以使用类了

4.class + 类名    注意:类名首字母必须大写,括号内参数object代表他已经是尽头的类了,他没有父类了。如果没有object那就说明他还有父类

5.def __init__(self):  类的初始化,在这里没有对初始化做什么操作。

再看一些例子:

class Test(object):
    def __init__(self):
        self.test1 = '我具备test1功能'
        self.test2 = '我具备test2功能'
        self.test3 = '我具备test3功能'

    def function1(self):
        print(self.test1)
        print(self.test2)
        print(self.test3)

def main():
    t = Test()
    t.function1()

if __name__ == '__main__':
    main()

这里做了一些简单的初始化操作:

一个尽头Test类具备test1 test2 test3 的功能

将类赋给变量t,那么t就可以使用‘t.函数名’的方法来调用函数了。

再看一下继承的实现:

 

test1 = '具备test1功能'
test2 = '具备test2功能'
test3 = '具备test3功能'
a = '具备新增的A功能'

class Test(object):
    def __init__(self,test1,test2,test3):
        self.test1 = test1
        self.test2 = test2
        self.test3 = test3

class Test1(Test):
    def __init__(self):
        self.testA = a
        super(Test1, self).__init__(test1,test2,test3)
    def function(self):
        print('我是Test的子类Test1:',test1,test2,test3)
        print('我还额外',a)
def main():
    t = Test1()
    t.function()

if __name__ == '__main__':
    main()

 

在子类Test1中初始化Test父类,继承它所具备的的功能

与此同时,你的子类也可以额外新增功能。

除了在一个父类中继承,也可在多个父类中继承,我们称之为'多重继承':

 

class A(object):
    def __init__(self, a):
        print('init A...')
        self.a = a

class B(A):
    def __init__(self, a):
        super(B, self).__init__(a)
        print('init B...')

class C(A):
    def __init__(self, a):
        super(C, self).__init__(a)
        print('init C...')

class D(B, C):
    def __init__(self, a):
        super(D, self).__init__(a)
        print('init D...')

 

这里我们可以知道B继承了A  C继承了A  D继承了B和C  那么D具备A B C所有的功能

 

posted @ 2022-02-15 15:42  锋芒毕露的蜘蛛  阅读(58)  评论(0编辑  收藏  举报