Python 面向对象基础知识
| 面向对象基础知识 |
1.什么是面向对象编程?
- 以前使用函数
- 类 + 对象
2.什么是类什么是对象,又有什么关系?
class 类:
def 函数1():
pass
def 函数2():
pass # obj是对象,实例化的过程
obj = 类()
obj.函数1()
========== 面向对象不好 ============
========== 函数编程好 ==============
- 有时候,函数编程能实现?比较麻烦。
- 面向对象非常的简单就能实现。
3.什么时候适用面向对象?
- 1.当多个函数有公共的参数的时候
- 2.根据一个模板创建某些东西
- 3.链接服务器,执行命令,关闭
注:面向对象,可以进行更多的修改需求修改。
4.self就是调用当前方法的对象。
- 函数(方法)保存在类里面。
- 字段保存在对象内存下。

5.静态字段的使用场景。
- 创建的每一个字段都有共同的值,就可以设置为静态字段。
成员属性
class Foo: def __init__(self,name): #普通字段,属性 self.NAME = name self.Country = "中国"
全局属性
class Foo: #静态字段,公有属性 Country = "中国" def __init__(self,name): self.NAME = name

6.面向对象三大特性,继承,封装,多态。
封装:
- 类中封装:字段,方法
- 对象中封装了:普通字段的值
例子
class F1:
def __init__(self,n):
self.N = n
print('F1')
class F2:
def __init__(self,arg1):
self.a = arg1
print('F2')
class F3:
def __init__(self,arg2):
self.b = arg2
print('F3')
o1 = F1('alex')
o2 = F2(o1)
o3 = F3(o2)
########### 输出Alex:o3.b.a.N###########
#o1 = F1('alex')
#o2 = F2(o1)
#o3 = F3(o2)
#print(o3.b.a.N)
#执行结果
#alex
#注: o3包含o2包含o1包含N赋值alex。
继承:
例子:
求出结果:对应继承。
class F1:
def __init__(self):
print('F1')
def a1(self):
print('F1a1')
def a2(self):
print('F1a2')
class F2(F1):
def __init__(self):
print('F2')
def a1(self):
print('F2a1')
def a2(self):
self.a2()
print('F2a2')
class F3(F2):
def __init__(self):
print('F3')
# def a1(self):
# print('F3a1')
def a2(self):
print('F3a1')
obj = F3()
obj.a1()

多态:
- python:默认支持多态,没有类型限制
- 多态:多种形态。
7.字段与方法
字段:
普通字段(保存在对象中)
静态字段(保存在类中)
方法:
普通方法(保存在类中,调用者对象,至少有一个self参数)
class F1:
...
def a1(self):
print(self.name)
obj = F1()
obj.a1 = a1()
# 注:obj 对象内存没有存入数据,会占用内存。
静态方法(保存在类中,调用者类,无需创建对象,可以有任意个参数):
class F1:
@staticmethod
def a1():
print(self.name)
F1.a1()
# 注:相当于函数 @staticmethod。
8.知识总结
类
属性
1.实例变量 (实例内存)
2.类变量(类内存)
3.私有属性_var
方法
1.构造方法
2.析构函数
3.私有方法
对象
实例化一个类后得到的对象
封装
把一些功能的实现细节不对外暴露
继承
做用:代码的重用
1.继承组合
class Foo(object): def __init__(self,name,age,sex,类元素)#析构函数 super(Teacher,self).__init_(name,age,sex)#继承 self.person = Person(self,job) #组合,关联两个基类 #相当于实例化了一个类 self.类名 = 类元素 #以组合的形式实现代码的重用。
2.单继承
3.多继承
2.7经典类,深度优化,新式类,广度优先 3.x均是广度优先
class Foo(object): #都写新式类 def __init__(self,name,age,sex,salary)#析构函数 #新式类写法,推荐 super(Teacher,self).__init_(name,age,sex) #继承父类,先重构侯后继承。 #经典类写法,单个继承父类,不推荐 SchoolMember.__init__(self,name,age,sex) #继承父类
多态
接口重用,一种接口多种实现
一种接口,可以自动匹配多个实例
Python 面向对象基础知识的更多相关文章
- Python面向对象基础知识
面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用 类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用 ...
- Python数据挖掘——基础知识
Python数据挖掘——基础知识 数据挖掘又称从数据中 挖掘知识.知识提取.数据/模式分析 即为:从数据中发现知识的过程 1.数据清理 (消除噪声,删除不一致数据) 2.数据集成 (多种数据源 组合在 ...
- Python:基础知识
python是一种解释型.面向对象的.带有动态语义的高级程序语言. 一.下载安装 官网下载地址:https://www.python.org/downloads 下载后执行安装文件,按照默认安装顺序安 ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- python面向对象基础
面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...
- python——面向对象基础
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- python 爬虫基础知识一
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...
- PHP中oop面向对象基础知识(一)
OOP 基础知识汇总(一) &g ...
- Python学习-基础知识-2
目录 Python基础知识2 一.二进制 二.文字编码-基础 为什么要有文字编码? 有哪些编码格式? 如何解决不同国家不兼容的编码格式? unicode编码格式的缺点 如何既能全球通用还可以规避uni ...
随机推荐
- poj2528 线段树+离散化 (倒序)
The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...
- http://codeforces.com/contest/845
A. Chess Tourney time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- python --- json模块和pickle模块详解
json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化).(适用于多种编程语言,可以与其他编程语言做数据交换 ...
- REST架构概述
REST概述 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy F ...
- Python 获取当前脚本文件路径目录
# -*- coding: cp936 -*- import sys,os # 获取脚本文件的当前路径 def cur_file_dir(): # 获取脚本路径 path = sys.path[0] ...
- doubi -- 初创
doubi -- 初创 [背景分析] 一直在苦苦探寻人生的价值和意义.在这"二八"年华,对IT工作有点厌倦了.每天都是无休止地问题定位,需求会议.碎片化的时间写出来的代码都是无比的 ...
- 第五章 MySQL事务,视图,索引,备份和恢复
第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...
- JVM性能调优,GC
刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下. 主要从以下几部分来说明,关于内存和内存泄露.溢出的概念,区分内存泄露和内存溢出:内存的区域划分,了解GC回收机制 ...
- 改变oracle数据库归档模式_译文
Changing the Database Archiving Mode 改变数据库归档模式. Purpose 目的 This module describes how you can change ...
- 前端页面卡顿、也许是DOM操作惹的祸?
界面上UI的更改都是通过DOM操作实现的,并不是通过传统的刷新页面实现 的.尽管DOM提供了丰富接口供外部调用,但DOM操作的代价很高,页面前端代码的性能瓶颈也大多集中在DOM操作上,所以前端性能优化 ...