python基础6_1-编程范式、面向过程编程、面向对象编程、面向对象三大特性、类变量和实例变量、析构函数

1、编程范式

在程序开发的过程中,每一个程序员都会有自己的编程风格,根据这些不同的编程风格,进行归纳总结,得到了几种典型的编程风格,这就是编程范式,分为面向对象编程、面向过程编程、函数式编程

2、面向过程编程

面向过程是一种以“过程”为中心的编程思想,以什么正在发生为主要目标进行编程。将一个大问题,分解成若干个小问题,再针对小问题,进行分解,直到小问题足够小,能够解决为止。然后用函数一步一步实现,使用的时候一个一个依次调用就可以实现
优点:复杂的问题简单化
缺点:可扩展性差

3、面向对象编程

面向对象(OOP)是一种以“对象”为中心的编程思想,一切皆对象。将现实的事物都进行抽象化成模型,模型用来反映现实事物的特征。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
优点:可扩展性强
缺点:编程的复杂度高于面向过程

特性:

  1. Encapsulation 封装:功能实现细节不对外暴露,在类中对数据赋值,内部调用对外部用户不可见
  2. Inheritance 继承:一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承(代码重用)
  3. Polymorphism 多态:每个类在继承了同样的方法名同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。一个接口,多个实现(接口重用)

Class 类:
一个类即对一类拥有相同对象的抽象、蓝图、原型
在类中定义这些对象都有的属性和方法

Object 对象:
一个对象即是一个类的实例化,一个类可以实例化的多个对象,每个对象可以有不同的属性,如人指类,每个人为对象,人与人之间有共同点,也有不同点

类的实例化:

  • _ _ init _ _()是构造函数,在实例化的时候做一些类的初始化工作
  • 类有自己单独的内存空间,存储自己的属性和方法,在实例化对象的时候,会新开辟一块空间给这个对象,只会copy基本属性到这块内存区域, 不copy方法

在这里插入图片描述

析构函数:
在实例释放时、销毁时自动执行,通过做一些收尾的工作,如关闭数据库连接、关闭临时文件

# Author: Mr.Xue
# 2019.10.29
	
def __del__(self):
	pass

del r1 # 执行析构函数,r1代表类对象

类变量和实例变量:

  • 类变量是大家共用的属性,目的是为了节省内存空间

  • 私有属性(变量)和私有方法:在变量名/方法名前面"_ _"

  • 实例变量是定义声明在__init__方法中的

  • 如果类变量和实例变量相同时,实例化对象先找实例本身的

  • 实例对象r1改变了类变量,原理上是对象r1在自己的内存里创建了一个新的变量,如果有一个新的实例r2在r1改变了类变量的值后再去调用类变量,类变量的值没有发生变化

    class role:
    	n = 123 # 类变量
    	def __init__(self, name):
    		self.name = name # 实例变量(静态属性),作用域就是实例本身
    	
    	def func(): # 类的方法、功能(动态属性)
    		pass
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值