python 类的创建, 实例化, 初始化以及面向对象(4.1)
2023-06-13 09:13:27 时间
类的创建, 实例化, 初始化
什么是类
类就是拥有相同功能或者相同属性的对象集合
类的创建
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中式没有重载, 但是可以用装饰器来实现该功能.
封装
把客观事物封装成抽象的类, 隐藏实现细节, 使得代码模块化.
相关文章
- 超详细的80个Python入门实例,代码清晰拿来即用,学习提升必备「建议收藏」
- Python:whl文件是神?如何安装whl文件?
- python大数据分析实例-用Python整合的大数据分析实例
- python截图识别文字_Python文字截图识别OCR工具实例解析
- java与python-如何对比Python和Java,只需三分钟告诉你!
- Python: “股票数据Scrapy爬虫”实例
- 【说站】python类如何实例化对象
- 【说站】python混合传递的基本原则
- 【说站】python创建实例中类属性的变化
- 遗传算法的应用实例python实现_遗传算法Python解决一个问题
- 求中位数Python_统计学中位数众数例题
- python win32api sendmessage_Python win32api.SendMessage方法代码示例[通俗易懂]
- Python基础-12 虚拟环境和包
- Python生成验证码实例详解编程语言
- Linux创建Python文件的步骤(linux新建python文件)
- 使用Python编程连接MySQL数据库(python连mysql)
- Python rjust()字符串右对齐方法详解
- 使用Python连接SQL Server数据库(python连接sqlserver数据库)
- python编程-将Python程序转化为可执行程序[整理]
- python解析xml文件实例分享
- 跟老齐学Python之编写类之一创建实例
- python中urllib模块用法实例详解
- Python之eval()函数危险性浅析