我是靠谱客的博主 标致大树,最近开发中收集的这篇文章主要介绍类的创建, 实例化, 初始化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类的创建, 实例化, 初始化

  • 什么是类

    类就是拥有相同功能或者相同属性的对象集合

  • 类的创建

    • object是所有类的基类

      class GoGamer(object):
          subject = 'go'
      
      print(GoGamer)
      
  • 类的实例化

    实例就是抽象概念的具象化

    kejie = GoGamer()
    print(kejie)
    
  • 类的初始化

    类创建一个新实例的时候会默认调用__init__这样一个特殊方法

    class GoGamer(object):
        subject = 'go'
        def __init__(self, obj):
            self.p = obj
    
    kejie = GoGamer("金勺子")
    print(f"柯洁含着{kejie.p}出生")
    
    • 关于self

      指代还未实例化的实例

面向对象

  • 面向过程

    • 程序=数据结构+算法
    • 强调的是一个实现的细节
  • 面向对象

    完成对越来越庞大项目代码以及对外公开接口的归类和重用, 是一种更高级的抽象.

    • 通过什么手段来完成上述目的?

      • 继承

        class ChineseGoGamer(GoGamer):
            nation = 'cn'
        
        class KoreaGoGamer(GoGamer):
            nation = 'kr'
        
        • 处理多继承冲突

          • 查看MRO(mehotd resolution order)

            class A:
                def __init__(self):
                    print("init A")
            
            class B:
                def __init__(self):
                    print("init B")
            
            
            class C(A, B):
                pass
            
            print(C.__mro__)
            
          • 指定类方法的调用顺序

            class C(A, B):
                def __init__(self):
                    super(A, self).__init__()
            
          • super函数源码

            def super(cls, inst):
            	mro = inst.__class__.mro()
            	return mro[mro.index(cls) + 1]
            
            def super(类, 实例):
            	# 获取当前实例的方法解析顺序
            	mro = 实例.类.mro()
            	return mro[mro.index(类) + 1]
            
      • 多态

        方式为覆盖和重载

        • 覆盖(子类和父类之间的, 是垂直的关系)

          子类可以继承父类的所有属性和方法, 但是同时子类也可以重写父类的属性和方法, 达到自定义的目的.

          class A:
              def __init__(self):
                  print("init A")
          
          class B:
              def __init__(self):
                  print("init B")
          
          
          class C(A, B):
              def __init__(self):
                  print("init C")
          
        • 重载(类中的方法和方法之间的, 是水平关系)

          Python中式没有重载, 但是可以用装饰器来实现该功能.

      • 封装

        把客观事物封装成抽象的类, 隐藏实现细节, 使得代码模块化.

最后

以上就是标致大树为你收集整理的类的创建, 实例化, 初始化的全部内容,希望文章能够帮你解决类的创建, 实例化, 初始化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部