6.python基础(三)

系统 1830 0

文章目录

  • 1. 字典增删
  • 2. 模块、类、对象
    • 2.1 一个类的例子
  • 3.继承和组合
    • 3.1 什么是继承
      • 3.1.1 隐式继承
      • 3.1.2 显式覆盖
      • 3.1.3 在运行前或运行后替换
      • 3.1.4 三种方式组合使用
    • 3.2 组合
    • 3.3 继承和组合的应用场合

1. 字典增删

            
              stuff
              
                =
              
              
                {
              
              
                "name"
              
              
                :
              
              
                "jack"
              
              
                ,
              
              
                "age"
              
              
                :
              
              
                "18"
              
              
                ,
              
              
                "height"
              
              
                :
              
              
                "180"
              
              
                }
              
              
stuff
              
                [
              
              
                "city"
              
              
                ]
              
              
                =
              
              
                "beijing"
              
              
                print
              
              
                (
              
              stuff
              
                )
              
              
                del
              
               stuff
              
                [
              
              
                "city"
              
              
                ]
              
              
                print
              
              
                (
              
              stuff
              
                )
              
            
          

2. 模块、类、对象

  • 模块通过import调用,调用之后就可以使用模块里面的函数、变量等。就比如,import sklearn。
  • 类、实例化、对象
            
              
                class
              
              
                mystuff
              
              
                (
              
              
                )
              
              
                :
              
              
                # 对象初始化
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                )
              
              
                :
              
              
        self
              
                .
              
              tangerine 
              
                =
              
              
                "hhhhhhhhhh"
              
              
                def
              
              
                apple
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "i am superman"
              
              
                )
              
              
        
thing 
              
                =
              
               mystuff
              
                (
              
              
                )
              
              
                # 实例化,得到thing这个对象。
              
              
thing
              
                .
              
              apple
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              thing
              
                .
              
              tangerine
              
                )
              
            
          

将类实例化就会得到对象,可以对对象调用函数等操作。

2.1 一个类的例子

            
              
                class
              
              
                Song
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
              lyrics
              
                )
              
              
                :
              
              
		self
              
                .
              
              lyrics 
              
                =
              
               lyrics

	
              
                def
              
              
                sing_me_a_song
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                for
              
               line 
              
                in
              
               self
              
                .
              
              lyrics
              
                :
              
              
                print
              
              
                (
              
              line
              
                )
              
              

happy_baby 
              
                =
              
               Song
              
                (
              
              
                [
              
              
                "happy birthday to you"
              
              
                ,
              
              
                "happy new year"
              
              
                ]
              
              
                )
              
              
happy_baby
              
                .
              
              sing_me_a_song
              
                (
              
              
                )
              
            
          

3.继承和组合

大部分使用继承的场合都可以使用组合取代或简化,而多重继承则需要不惜一切地避免。

3.1 什么是继承

继承就是指一个类地大部分或全部功能是从一个父类中获得的,父类和字类有三种交互方式:

  • 子类上的动作完全等同于父类上的动作
  • 子类上的动作完全覆盖父类上的动作
  • 子类上的动作部分替换了父类上的动作

3.1.1 隐式继承

            
              
                # 隐式继承
              
              
                class
              
              
                parent
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                implicit
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent implicit()"
              
              
                )
              
              
                class
              
              
                child
              
              
                (
              
              parent
              
                )
              
              
                :
              
              
                pass
              
              

dad 
              
                =
              
               parent
              
                (
              
              
                )
              
              
                .
              
              implicit
              
                (
              
              
                )
              
              
child 
              
                =
              
               child
              
                (
              
              
                )
              
              
                .
              
              implicit
              
                (
              
              
                )
              
            
          

结果如图:
6.python基础(三)_第1张图片

3.1.2 显式覆盖

            
              
                class
              
              
                parent
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent override()"
              
              
                )
              
              
                class
              
              
                child
              
              
                (
              
              parent
              
                )
              
              
                :
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child override()"
              
              
                )
              
              

dad 
              
                =
              
               parent
              
                (
              
              
                )
              
              
                .
              
              override
              
                (
              
              
                )
              
              
child 
              
                =
              
               child
              
                (
              
              
                )
              
              
                .
              
              override
              
                (
              
              
                )
              
            
          

结果如图:
6.python基础(三)_第2张图片

3.1.3 在运行前或运行后替换

            
              
                class
              
              
                parent
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent altered()"
              
              
                )
              
              
                class
              
              
                child
              
              
                (
              
              parent
              
                )
              
              
                :
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child, before parent altered()"
              
              
                )
              
              
                super
              
              
                (
              
              child
              
                ,
              
              self
              
                )
              
              
                .
              
              altered
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "child,after parent altered()"
              
              
                )
              
              

parent
              
                (
              
              
                )
              
              
                .
              
              altered
              
                (
              
              
                )
              
              
child
              
                (
              
              
                )
              
              
                .
              
              altered
              
                (
              
              
                )
              
            
          

super(child,self)还保留着继承关系,因此通过继承父类之后,通过.altered()调用了父类的altered函数。

结果如图:
6.python基础(三)_第3张图片

3.1.4 三种方式组合使用

            
              
                class
              
              
                parent
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent override()"
              
              
                )
              
              
                def
              
              
                implicit
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent implicit()"
              
              
                )
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "parent altered()"
              
              
                )
              
              
                class
              
              
                child
              
              
                (
              
              parent
              
                )
              
              
                :
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child override()"
              
              
                )
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child, before parent altered()"
              
              
                )
              
              
                super
              
              
                (
              
              child
              
                ,
              
               self
              
                )
              
              
                .
              
              altered
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "child,after parent altered()"
              
              
                )
              
              
		
dad 
              
                =
              
               parent
              
                (
              
              
                )
              
              
son 
              
                =
              
               child
              
                (
              
              
                )
              
              

dad
              
                .
              
              implicit
              
                (
              
              
                )
              
              
son
              
                .
              
              implicit
              
                (
              
              
                )
              
              

dad
              
                .
              
              override
              
                (
              
              
                )
              
              
son
              
                .
              
              override
              
                (
              
              
                )
              
              

dad
              
                .
              
              altered
              
                (
              
              
                )
              
              
son
              
                .
              
              altered
              
                (
              
              
                )
              
            
          

结果如下:
6.python基础(三)_第4张图片

3.2 组合

            
              
                class
              
              
                other
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "other override()"
              
              
                )
              
              
                def
              
              
                implicit
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "other implicit()"
              
              
                )
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "other altered()"
              
              
                )
              
              
                class
              
              
                child
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                )
              
              
                :
              
              
		self
              
                .
              
              other 
              
                =
              
               other
              
                (
              
              
                )
              
              
                def
              
              
                implicit
              
              
                (
              
              self
              
                )
              
              
                :
              
              
		self
              
                .
              
              other
              
                .
              
              implicit
              
                (
              
              
                )
              
              
                def
              
              
                override
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child override()"
              
              
                )
              
              
                def
              
              
                altered
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "child, before parent altered()"
              
              
                )
              
              
		self
              
                .
              
              other
              
                .
              
              altered
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                "child,after parent altered()"
              
              
                )
              
              
		
son 
              
                =
              
               child
              
                (
              
              
                )
              
              

son
              
                .
              
              implicit
              
                (
              
              
                )
              
              
son
              
                .
              
              override
              
                (
              
              
                )
              
              
son
              
                .
              
              altered
              
                (
              
              
                )
              
            
          

这里不是使用了继承的方法,而是,child里面有一个other()用来实现继承的功能。

结果如下:
6.python基础(三)_第5张图片

3.3 继承和组合的应用场合

继承和组合说到底都是为了解决关于代码重复的问题。
每个人的代码风格不同,这里仅代表一点建议:

  • 不惜一切避免多重继承。
  • 如果一些代码会在不同位置和场合用到,建议用组合。
  • 只有在代码的可复用部分之间有明确清楚的联系的时候,可以通过一个单独的共性联系起来的时候,才用继承。

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论